import com.novell.ldap.*;
import java.util.Enumeration;
import java.util.Iterator;
import java.net.MalformedURLException;
public class UrlSearch
{
public static void main( String[] args )
{
if (args.length != 1) {
System.err.println("Usage: java UrlSearch <url>");
System.err.println("Example: java UrlSearch \"ldap://Acme.com:389/"
+ "ou=sales,o=Acme\n"
+ " ?cn,sn,telephoneNumber?one?"
+ "(objectclass=*)\"");
System.exit(1);
}
String inUrl = args[0];
LDAPUrl myUrl;
LDAPConnection lc = new LDAPConnection();
try {
myUrl = new LDAPUrl( inUrl);
System.out.println( "Input Url: " + inUrl );
String encodedUrl = myUrl.encode(inUrl);
System.out.println( "Encoded Url: " + encodedUrl );
System.out.println( "ldapHost: " + myUrl.getHost());
System.out.println( "ldapPort: " + myUrl.getPort());
System.out.println( "searchBase: " + myUrl.getDN());
String attrArray[] = myUrl.getAttributeArray();
if (attrArray != null) {
System.out.print("attributes to return: ");
for (int i = 0; i < attrArray.length; i++) {
System.out.print( (i < attrArray.length - 1)?
attrArray[i] + ", ": attrArray[i]);
}
}
else
System.out.print("attributes to return: all the attributes");
System.out.println();
System.out.println( "searchScope: " + myUrl.getScope());
System.out.println( "searchFilter: " + myUrl.getFilter());
LDAPSearchResults searchResults = lc.search( myUrl );
while ( searchResults.hasMore()) {
LDAPEntry nextEntry = searchResults.next();
System.out.println("\n" + nextEntry.getDN());
LDAPAttributeSet attributeSet = nextEntry.getAttributeSet();
Iterator allAttributes = attributeSet.iterator();
if (allAttributes.hasNext())
System.out.println(" Attribute(s): ");
while(allAttributes.hasNext()) {
LDAPAttribute attribute =
(LDAPAttribute)allAttributes.next();
String attributeName = attribute.getName();
Enumeration allValues = attribute.getStringValues();
while(allValues.hasMoreElements()) {
String Value = (String) allValues.nextElement();
System.out.println(" " + attributeName
+ ": " + Value);
}
}
}
}
catch( MalformedURLException e ) {
System.out.println( "Error: " + e.toString() );
}
catch( LDAPException e ) {
System.out.println( "Error: " + e.toString() );
}
System.exit(0);
}
}