PDA

View Full Version : [JAVA] LDAP


orpheus
11-08-2006, 14:08
Ciao a tutti,

devo effettuare una connessione a una directory LDAP per recuperare il valore di un particolare attributo.

Per fare questo ho scaricato jldap, inoltre da openldap ho scaricato il server ldap per fare le prove.

questo è il mio codice



public String loadX509CertificateFromLDAP(String certLDAPPath) throws UnsupportedEncodingException, LDAPException{
String cert = null;

LDAPUrl ldapUrl;
LDAPConnection lc = new LDAPConnection();
try {

ldapUrl = new LDAPUrl( certLDAPPath);
LDAPSearchResults searchResults = lc.search( ldapUrl );

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);
cert = value;
}
}
}
}
catch( MalformedURLException e ) {
System.out.println("MalformedURL exception");
e.printStackTrace();
}
catch( LDAPException e ) {
System.out.println("LDAP exception");
e.printStackTrace();
}

return cert;
}



Il problema è il seguente appena tento di fare la connessione mi parte quest'eccezione:


LDAPException: Connection closed by the application disconnecting (91) Connect Error
at com.novell.ldap.Connection.destroyClone(Unknown Source)
at com.novell.ldap.LDAPConnection.disconnect(Unknown Source)
at com.novell.ldap.LDAPConnection.disconnect(Unknown Source)
at com.novell.ldap.LDAPConnection.search(Unknown Source)
at com.novell.ldap.LDAPConnection.search(Unknown Source)



E' la prima volta che lavoro su queste cose e non capisco se il problema è nel codice oppure ci sono delle impostazioni da configurare nel server

Ogni aiuto/suggerimento è ben accetto

orpheus
17-08-2006, 08:02
Uppete....proprio nessuno ha qualche cosiglio ?? :mc: :mc: :muro: :muro:

lovaz
17-08-2006, 11:45
Io sapevo che per lavorare con LDAP bastava JNDI,
vedi ad esempio nel Java tutorial:
http://java.sun.com/products/jndi/tutorial/ldap/index.html

Negli esempi viene proprio usato LDAP:
http://java.sun.com/products/jndi/tutorial/basics/directory/index.html

Mi spiace di non essere di grande aiuto, sono un po' di fretta...
ciao

kingv
18-08-2006, 06:35
quoto lovaz usare jndi, se non hai bisogno di alcune caratteristiche che mancano, è una scelta più comoda (niente librerie esterne) e object oriented (le altre librerie ldap sembrano un porting pari pari di quelle C).

torniamo al tuo problema, che valore ha il parametro che passi al metodo?

orpheus
18-08-2006, 10:22
Questo è il mio url di prova dove street è attributo di cui voglio valore

ldap://localhost:389/dc=md,o=com?street?one

orpheus
18-08-2006, 16:51
Ho provato ad usare JNDI come mi avete consigliato..ora riesco a collegarmi correttamente al server LDAP...grazie per l'aiuto