나는 그 이유를 밝히지 않는 것이 가장 좋습니다.
는 사용자 이름이 존재하는지 확인하기 위해 사용자 이름과 search
를 수행
하지만 당신은 무슨 일이 있어도 그것을하지해야하는 경우 -
. 존재하지 않으면 오류입니다.
사용자가 있고 인증을 계속하지만 인증 오류가 발생하면 잘못된 암호입니다.
-
편집 :
If(checkUserExists(username)){
//construct the hashtable environment
//...
ht.put(Context.SECURITY_PRINCIPAL, username);
ht.put(Context.SECURITY_PRINCIPAL, password);
//...
try {
localLdapContent = new InitialLdapContext(ht, null);
} catch (Exception e) {
//suppose it's a wrong password
}
}else{
//error user doesn't exist
}
당신은 모든 요청에 대해 사용자를 확인 할 수있는 권한을 가진 다른 LDAP 연결이 필요합니다.
boolean checkUserExists(String username) {
//...
ht_administrator.put(Context.SECURITY_PRINCIPAL, admin_username);
ht_administrator.put(Context.SECURITY_PRINCIPAL, admin_password);
//...
adminconn = new InitialLdapContext(ht_administrator, null);
return adminconn.search(
"uid="+username+",ou=people,dc=example,dc=com", "(objectclass=*)", searchControls
).hasMore();
}
UI에서 어느 것이 틀린 지 표시하지는 않지만 코드는 사용자 이름 또는 암호 중 어느 것이 일치하지 않는지 이해해야합니다. –