Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PLEASE: Sample connecting to LDAPS Server in Java

50 views
Skip to first unread message

Gregorio Alejandro Patiño Zabala

unread,
Feb 20, 2002, 10:13:46 AM2/20/02
to
Hi,

I am trying to find the way to connect my program to my LDAPS Netscape
Server, but I cannot find the way to do it...

This is my code...


import netscape.ldap.*;

public class SSLSample {

String host;
String user;
String password;

public static final int SSL_PORT = 636;
public static final String FILTER = "&(objectclass=inetOrgPerson)(cn=";
public static final String BASEDN = "o=mycompany";

SSLSample(String h, String u, String p){
host = h;
user = u;
password = p;
}

void run(){
LDAPConnection ld = null;
String dn = null;
try {
ld = new LDAPConnection(new LDAPSSLSocketFactory());
//
ld.connect(host, SSL_PORT);
ld.getSocketFactory().makeSocket(host, SSL_PORT);
String filter = FILTER + user + ")";
LDAPSearchResults res = ld.search (BASEDN, LDAPv2.SCOPE_SUB,
filter, null, false);
if (res != null && res.hasMoreElements ()){
LDAPEntry entry = res.next();
dn = entry.getDN();
}
ld.authenticate(dn, password);
System.out.println("User authenticated: " + dn);
} catch(LDAPException e){
e.printStackTrace();
} catch(Exception e2){
e2.printStackTrace();
} finally {
try {
ld.finalize();
} catch (Exception ex) { }
}


}

public static void main(String [] args){

if (args.length != 3){
System.out.println("Usage: SSLSample <server> <user> <passwd>");
System.exit(-1);
}
SSLSample s = new SSLSample(args[0], args[1], args[2]);
try {
s.run();
} catch (Exception e){
e.printStackTrace();
}
}
}

And this is my execution result:

c:\>java SSLSample server user passwd
netscape.ldap.LDAPException: Failed to create SSL socket (91); Cannot
connect to
the LDAP server
at
netscape.ldap.LDAPSSLSocketFactory.makeSocket(LDAPSSLSocketFactory.ja
va:309)
at SSLSample.run(SSLSample.java:26)
at SSLSample.main(SSLSample.java:57)

Rob Weltman

unread,
Mar 9, 2002, 4:03:57 PM3/9/02
to Gregorio Alejandro Patiño Zabala
Gregorio Alejandro Patiño Zabala wrote:
>
> Hi,
>
> I am trying to find the way to connect my program to my LDAPS Netscape
> Server, but I cannot find the way to do it...

Here are a few tips:

- You need a real SSL provider. LDAPSSLSocketFactory assumes
netscape.net.SSLSocket which is in Communicator, unless you pass in the
name of a class. You can use the org.mozilla.jss.ssl.SSLSocket class
that comes with JSS (get it from
http://www.mozilla.org/projects/security/pki/jss/). Or use
netscape.ldap.factory.JSSESocketFactory along with the reference
implementation of JSSE from Sun (included in JDK 1.4, a separate
download before that). JSS is much faster than JSSE. In both cases
you'll need key and certificate files. For JSS you can copy over key3.db
and cert7.db from Communicator.

- No need to do ld.getSocketFactory().makeSocket. That method is called
internally.

- Make sure your server really is running SSL. You can check in the
error log to see if an SSL port was enabled when the server started.

Rob

0 new messages