LDAP密码修改

//LDAP密码修改

final String host = "192.168.1.101";
final int port = 389;

final LDAPConnectionFactory factory = new LDAPConnectionFactory(host, port);
Connection connection = null;

try {
    connection = factory.getConnection();
    
    //checkSupportedExtendedOperations(connection);
    extendedOperations=RootDSE.readRootDSE(connection).getSupportedExtendedOperations();

    final String ladpAdmin = "cn=Directory Manager";
    final char[] ladpAdminPassword = "xerllent".toCharArray();
    connection.bind(ladpAdmin, ladpAdminPassword);

    // Uncomment a method to run one of the examples.

    // For a Cancel Extended request, see the SearchAsync example.
    //usePasswordModifyExtendedRequest(connection);
        if (extendedOperations != null && !extendedOperations.isEmpty() && extendedOperations.contains(PasswordModifyExtendedRequest.OID)) {

            //final String userIdentity = "uid=test3,ou=People,dc=example,dc=com"; //通过
            final String userIdentity = "u:test3"; //通过
            //final String userIdentity = "uid:test3"; //错误写法
            final char[] oldPassword = "test3".toCharArray();
            final char[] newPassword = "test3".toCharArray();

            final PasswordModifyExtendedRequest ldaprequest =
                    Requests.newPasswordModifyExtendedRequest()
                        .setUserIdentity(userIdentity)
                        .setOldPassword(oldPassword)
                        .setNewPassword(newPassword);

            final PasswordModifyExtendedResult result = connection.extendedRequest(ldaprequest);
            if (result.isSuccess()) {
                System.out.println("Changed password for " + userIdentity);
            } else {
                System.err.println(result.getDiagnosticMessage());
            }
        } else {
            System.err.println("PasswordModifyExtendedRequest not supported");
        }


} catch (ErrorResultException e) {
    System.err.println(e.getMessage());
    System.exit(e.getResult().getResultCode().intValue());
    return;
} finally {
    if (connection != null) {
        connection.close();
    }
}



--------------------------------------------------------------------------
Changed password for uid=test3,ou=People,dc=example,dc=com
Changed password for u:test3
Protocol Error: 无法处理密码修改扩展请求,因为它包含无效的 userIdentity 字段。提供的 userIdentity 字符串为 "uid:test3"

猜你喜欢

转载自songxh2.iteye.com/blog/1950069