У меня есть веб-приложение, в котором я пытаюсь использовать аутентификацию LDAP для входа в систему (пользователи войти с их Windows, идентификатор сеанса)аутентификации LDAP с 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 error, data 52e, v1db1 –
Ошибка: 52e "Возвращает, когда имя пользователя является допустимым, но пароль/учетные данные недействительны." -jim – jwilleke