Many programmers like to use Java to automate access to network resources because it is so easy to write networking code with the Java networking classes. Accessing URLs through Java is as simple as creating a URLConnection class instance and fetching its input stream. However, not all URLs are publicly accessible and require authentication. If you look at the specification for HTTP, you will find that URLs requiring a username and password require an Authorization property to accompany the GET request. The format for the Authorization property is the concatenation of the username and password separated by a colon and then Base64 encoded.
In Java, the URLConnection class has a method called setRequestProperty() which can be used to set the value of an HTTP request property. The only trick remaining is to Base64-encode the username and password. There are three ways to do this. You can write your own Base64 encoder, you can use a third-party Base64 encoder, or you can use an undocumented and unsupported class in the Sun JDK. Keep in mind that Sun makes no guarantees that classes in any of the sun. *packages will be present in future versions of their JDK. In Java 1.2 there will be a java.net.Authenticator class to make this task easier