2014-06-05 1 views
1

아래와 같이 UNBoundID LDAP SDK를 사용하여 AD 비밀번호를 변경하려고합니다. UNBoundID SDK를 사용하여 AD 비밀번호 재설정

try{ 
    LDAPConnection connection=new LDAPConnectionObject().getConnection(); 
    PasswordModifyExtendedRequest passwordModifyRequest = 
    new PasswordModifyExtendedRequest(
    user, // The user to update 
    oldPass, // The current password for the user. 
    newPass); // The new password. null = server will generate 

    PasswordModifyExtendedResult passwordModifyResult; 
    try 
    { 
    passwordModifyResult = (PasswordModifyExtendedResult) 
    connection.processExtendedOperation(passwordModifyRequest); 
    System.out.println("passwordModifyResult---"+passwordModifyResult); 
    } 
    catch (LDAPException le) 
    { 
    le.printStackTrace(); 
    passwordModifyResult = new PasswordModifyExtendedResult(
    new ExtendedResult(le)); 
    } 

    LDAPTestUtils.assertResultCodeEquals(passwordModifyResult, 
    ResultCode.SUCCESS); 
    String serverGeneratedNewPassword = 
    passwordModifyResult.getGeneratedPassword(); 
    }catch(LDAPException e){ 
    e.printStackTrace(); 

    } 
    } 

그것은

LDAPException(resultCode=2 (protocol error), errorMessage='0000203D: LdapErr: DSID-0C090C7D, comment: Unknown extended request OID, data 0, vece , diagnosticMessage='0000203D: LdapErr: DSID-0C090C7D, comment: Unknown extended request OID, data 0, vece 

사람이 날 수정하시기 바랍니다 수, 아래와 같은 오류를 던지고? 그것은 Active Directory에 같은 소리를 미리

답변

1

감사 (또는 적어도 당신이 사용중인 설치) 암호의 사용이 수정 확장 작업을 지원하지 않습니다. 그러나 LDAP 수정 조작을 사용하여 수정을 올바르게 구성하면 사용자 암호를 변경할 수 있습니다. 요구 사항에 대한 설명 및 코드 예는 http://www.dirmgr.com/blog/2010/8/26/ldap-password-changes-in-active-directory.html을 참조하십시오.

+0

감사합니다. Neil, 당신이 제안한 것과 같은 방식으로 이미했습니다. 하지만 위의 메소드/클래스에는 여기에 더 많은 기능이 있습니다. 예를 들어 1을 사용하고 싶습니다. 자동 생성 된 비밀번호 2. 이전 비밀번호로 비밀번호를 변경하면 인증과 같습니다. 위의 스 니펫을 사용하는 다른 방법이 있는지 알려 주시기 바랍니다. – sasikals26

+0

필자는 Active Directory에서 확장 된 작업을 지원하는지 여부를 알기에는 아직 익숙하지 않지만 적어도 현재 구성에서는 지원되지 않는 것 같습니다. 클라이언트 쪽 문제는 아니지만 서버 측 문제. 서버가이를 허용하지 않으면 클라이언트는이를 수행 할 수 없습니다. –