| Common Problems (and Their Solutions)

## Web Browser Problems

> Here are some problems that you might encounter when trying to deploy an applet that uses the JNDI classes.

> #### Cannot Authenticate by Using CRAM-MD5

> Problem: You get an `AppletSecurityException` when an applet running inside Netscape Communicator attempts to authenticate using CRAM-MD5 to the LDAP server.

> Cause: Netscape Communicator disables access to the `java.security` packages. The LDAP provider used the message digest functionality provided by `java.security.MessageDigest` for implementing CRAM-MD5.

> Solution: Use the Java Plug-in.

> #### Cannot Connect to Arbitrary Hosts

> Problem: You get an `AppletSecurityException` when your applet attempts to communicate with a directory server that is running on a machine different from the one from which the applet was loaded.

> Cause: Your applet was not signed, so it can connect only to the machine from which it was loaded. Or, if the applet was signed, the browser has not granted the applet permission to connect to the directory server machine.

> Solution: If you want to allow the applet to connect to directory servers running on arbitrary machines, then you need to sign both your applet and all of the JNDI JARs that your applet will be using. For information on signing jars, see http://java.sun.com/products/jdk/1.1/docs/guide/security/index.html.

> #### Cannot Access System Properties for Configuration

> Problem: You get an `AppletSecurityException` when your applet attempts to set up the environment properties using system properties.

> Cause: Web browsers limit access to system properties and throw a `SecurityException` if you attempt to read them.

> Solution: If you need to obtain input for your applet, then try using applet params instead.

| Common Problems (and Their Solutions)