2017-12-15 16 views
0

Java 응용 프로그램에서 제공된 사용자 이름과 암호가 올바른지 LDAP 서버에 문의하고 싶습니다. 올바른 ldapUrl을 전달하여 내가 checkCredentials 전화로인증 오류 49 java 응용 프로그램의 jndi가 포함 된 52e (유효하지 않은 토큰)

public static String checkCredentials(String securityPrincipal, 
           String password, 
           String ldapUrl, 
           String securityAuthentication) 
{ 
    String userVerify = ""; 
    Hashtable env = new Hashtable(); 
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
    env.put(Context.PROVIDER_URL, ldapUrl); 
    env.put(Context.SECURITY_AUTHENTICATION, securityAuthentication); 
    env.put(Context.SECURITY_PRINCIPAL, securityPrincipal); 
    env.put(Context.SECURITY_CREDENTIALS, password); 

    try { 
     DirContext authContext = new InitialDirContext(env); 
     userVerify = testDescription + " - Success"; 
     authContext.close(); 
    } catch (AuthenticationException authEx) { 
     userVerify = "AuthenticationException: " + authEx.getMessage();//"Authentication failed!"; 
    } catch (NamingException namEx) { 
     userVerify = "NamingException: " + namEx.getMessage();//"Something went wrong!"; 
    } 
    return userVerify; 
} 

(점에서 :

나는 (그것이 내가 예외 메시지를 반환 LDAP를 탐험하기 위해 사용하고 테스트 함수)이 기능으로 JNDI를 사용하여 종료 LdapErr : DSID-0C0903A8, 코멘트 : AcceptSe -

있는 AuthenticationException : : : [LDAP 80090308 오류 코드 49 내 경우에는 내가 항상 (함수가 String)를 반환 결과로 얻을) ldap://192.168.48.60:389있어 curityContext 오류, 데이터 52E, v1db1]

page은 인증 오류 (49)와 "사용자 이름이 유효하지만 암호/인증 정보가 잘못"(52E) 인 것을 말한다.

내가 securityPrincipal 이러한 모든 시도 :

을 존

존 @ mycompany

CN = 존 코네티컷

CN = 존, OU = 내부 사용자, DC = 회사 명

passwordsecuirityAuthentication은 무시됩니다.

나는 http://www.ldapadmin.org/에서 LDAP 관리자를 설치하려고하고 또한 그것에서 내가 얻을 :

LDAP 오류를! 유효하지 않은 자격증 명 : 80090308 : LdapErr : DSID-0C0903A8, 설명 : AcceptSecurityContext 오류, 데이터 52e, v1db1.

유효하지 않은 토큰이 함수에 전달되었습니다.

어쨌든 이것은 "무효화 된 토큰"을 알려줍니다.

모든 포인터? 나는 붙어있다.

답변

0

securityAuthentication에서 "simple"대신 "none"을 전달하면 작업이 완료됩니다.

적어도 예외가 없습니다. Passowrd가 틀린 경우에도 UserVerifyT가 성공하더라도 사용자의 메일을 검색하여 과거와 마찬가지로 처리하고 메일이 반환되면 비밀번호가 맞습니다.