The directory host, port and basedn can be changed by modifying the following
properties:
	directory.server.host
	directory.server.port
	directory.server.basedn
in build.properties

This test use a user name "j2ee/shingwai" with password "j2ee/shingwai".
If a different user is used, then please modify it in
shopping/RpaBean.java, descriptor/sun-application.xml and build.xml.
If a different password is used, then please modify it in build.xml.

For LDAP/SSL test, one need to import cert from LDAP server to our truststore.
