LDAP身份驗證我有一個Web應用程序,我嘗試使用LDAP身份驗證登錄系統(用戶使用其Windows會話ID登錄)與Java
我試過這個類:
public static boolean ad (String log,String pass) throws NamingException
{
try
{
System.out.println("Début du test Active Directory");
Hashtable<String, String> ldapEnv = new Hashtable<String, String>();
ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
ldapEnv.put(Context.PROVIDER_URL, "ldap://LDAPserver:389");
ldapEnv.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");
ldapEnv.put("java.naming.security.sasl.realm","MyCompany.com");
ldapEnv.put("javax.security.sasl.qop", "auth");
ldapEnv.put("javax.security.sasl.strength","high");
ldapEnv.put(Context.SECURITY_PRINCIPAL,log.toLowerCase());
System.out.println(pass);
ldapEnv.put(Context.SECURITY_CREDENTIALS,pass);
ldapContext = new InitialDirContext(ldapEnv);
return true;
}
catch (Exception e)
{
return false;
}
}
它適用於某些用戶,但不適用於所有用戶,我不明白爲什麼。
你會得到什麼例外? – EJP
@EJP它適用於一些用戶對其他的我有這樣的例外:javax.naming.AuthenticationException:LDAP:錯誤代碼49 - 8009030C:LdapErr:DSID-0C0904DC,註釋:AcceptSecurityContext錯誤,數據52E,v1db1 –
錯誤: 52e「當用戶名有效但密碼/憑證無效時返回。」 -jim – jwilleke