Guten morgen erstmal,
ich habe folgendes Problem:
Ich soll an der Arbeit über LDAP eine Verbindung zum Novell eDirectory aufbauen.
In diesem eDirectory liegen alle User mit ihren Anmeldedaten drin.
Ich muss nun von meiner Webanwendung heraus die Anmeldedaten vergleichen.
Die Verbindung zum LDAP Server funktioniert und ich kann auch verschiedene Werte auslesen. Das einzigste was ich nicht "auslesen" kann ist das Passwort. Aber ich denke ja mal das ich das sowieso nicht auslesen kann/darf. Deswegen muss es doch irgendwie die Möglichkeit geben, dass eingegeben Passwort mit dem Passwort des User's, was auf dem eDirectory liegt, zu vergleichen.
Hier mal der Code womit ich zum Beispiel den Nachnamen eines Benutzers auslesen kann:
ps: ich benutze die Libary "JNDI", laut Internet kann man damit über das LDAP Protokoll auf verschiedene Verzeichnisdienste zugreifen. Funktioniert ja auch, wie das obige Beispiel zeigt. Brauche jetzt nur noch eine Möglichkeit um das Passwort eines Accounts zu vergleichen.
So ich danke schonmal im vorraus für jede Antwort.
Brauche unbedingt Hilfe
Gruss Flo
ich habe folgendes Problem:
Ich soll an der Arbeit über LDAP eine Verbindung zum Novell eDirectory aufbauen.
In diesem eDirectory liegen alle User mit ihren Anmeldedaten drin.
Ich muss nun von meiner Webanwendung heraus die Anmeldedaten vergleichen.
Die Verbindung zum LDAP Server funktioniert und ich kann auch verschiedene Werte auslesen. Das einzigste was ich nicht "auslesen" kann ist das Passwort. Aber ich denke ja mal das ich das sowieso nicht auslesen kann/darf. Deswegen muss es doch irgendwie die Möglichkeit geben, dass eingegeben Passwort mit dem Passwort des User's, was auf dem eDirectory liegt, zu vergleichen.
Hier mal der Code womit ich zum Beispiel den Nachnamen eines Benutzers auslesen kann:
Code:
InitialDirContext ctx = null;
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
//url des LDAP Servers
properties.put(Context.PROVIDER_URL, "ldap://xxx.xxx.xxx.hr-online.de");
properties.put(Context.SECURITY_AUTHENTICATION, "none");
try {
NamingEnumeration results = null;
LinkedList list = new LinkedList();
ctx = new InitialDirContext(properties);
SearchControls controls =
new SearchControls();
controls.setSearchScope(
SearchControls.SUBTREE_SCOPE);
//hier starte ich eine Suche nach dem Account "fdittmann" und bekomme
//das Ergebnis im NamingEnumeration Objekt zurück
results = ctx.search("o=HR",
"(&(objectClass=person)(cn=fdittmann))", controls);
SearchResult searchResult =
(SearchResult) results.next();
Attributes attributes =
searchResult.getAttributes();
//mit dem "sn" sage ich das ich den Nachnamen zurück gegeben haben will
Attribute attr = attributes.get("sn");
//hier schreibe ich dann den Nachnamen zum Testen in die Console
String str = (String) attr.get();
System.out.println(str);
} catch(Exception ex) {
}
ps: ich benutze die Libary "JNDI", laut Internet kann man damit über das LDAP Protokoll auf verschiedene Verzeichnisdienste zugreifen. Funktioniert ja auch, wie das obige Beispiel zeigt. Brauche jetzt nur noch eine Möglichkeit um das Passwort eines Accounts zu vergleichen.
So ich danke schonmal im vorraus für jede Antwort.
Brauche unbedingt Hilfe
Gruss Flo