Java-ldap-Authentifizierungs-Problem
Ich versuche, meine benutzerdefinierte java-Anwendung verwenden Sie unser Active Directory-Server für die Authentifizierung, aber ich kann es nicht aus irgendeinem Grund arbeiten. Kann jemand sehen, warum das so ist? Hier ist meine Methode unten:
private boolean authenticate(String serverName, String userId, String password) throws NamingException {
DirContext ctx = null;
Hashtable env = new Hashtable(11);
boolean b = false;
try {
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://servername.org:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid="+ userId +",ou=All Users,dc=site,dc=org");
env.put(Context.SECURITY_CREDENTIALS, password);
System.out.println("before context");
//If there isn't a naming exception then the user is authenticated. Return true
ctx = new InitialDirContext(env);
//The user is authenticated.
b = true;
} catch (NamingException e) {
System.out.println("the user is not authenticated return false");
b = false;
}finally{
if(ctx != null)
ctx.close();
}
return b;
}
Ergebnis:
[12/14/11 16:27:47:746 CST] 0000001f SystemErr R
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece
- was passiert? können Sie nach einem stack-trace?
- Ich bekomme ein ldap-Fehler-code 49 ist ein Authentifizierungsfehler. Allerdings werden die Anmeldeinformationen ich bin liefert, korrekt sind. Ich bin in der Lage, um die Anmeldung zu meinem windows-Rechner und anderen Servern mit.
- hat Ihr ldap-Verschlüsselung erforderlich? verwenden Sie keine spezifische Verbindungsparameter, die Ihnen wichtig sind zu teilen? Ansonsten ist es nur raten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, auf diese Weise?
Ersetzen auch
mit