java - 使用 unboundid 更改 LDAP 中的用户密码

标签 java ldap unboundid-ldap-sdk

我正在尝试使用下面的代码更改 LDAP 中的用户密码,我不是 LDAP 的管理员,因此我与具有 ou=systemusers 的用户建立连接,它可以创建用户,并且将用户添加到组中。我知道用于更改的旧密码

PasswordModifyExtendedRequest passwordModifyRequest =
      new PasswordModifyExtendedRequest(
           "uid=test.user,ou=People,dc=example,dc=com", // The user to update
           (String) null, // The current password for the user.
           (String) null); // The new password.  null = server will generate

 PasswordModifyExtendedResult passwordModifyResult;
 try
 {
   passwordModifyResult = (PasswordModifyExtendedResult)
        connection.processExtendedOperation(passwordModifyRequest);
   // This doesn't necessarily mean that the operation was successful, since
   // some kinds of extended operations return non-success results under
   // normal conditions.
 }
 catch (LDAPException le)
 {
   // For an extended operation, this generally means that a problem was
   // encountered while trying to send the request or read the result.
   passwordModifyResult = new PasswordModifyExtendedResult(
        new ExtendedResult(le));
 }

 LDAPTestUtils.assertResultCodeEquals(passwordModifyResult,
      ResultCode.SUCCESS);
 String serverGeneratedNewPassword =
      passwordModifyResult.getGeneratedPassword();

但我总是得到这个结果。

PasswordModifyExtendedResult(resultCode=50 (insufficient access rights), messageID=4, diagnosticMessage='You do not have sufficient privileges to perform password reset operations') 

知道旧密码后如何更改用户密码?

最佳答案

您必须以具有足够权限的用户身份登录才能执行该操作,或者更常见的是,以用户本人身份使用旧密码登录,当然,这是额外的健全性检查。或者 LDAP 服务器配置错误。

关于java - 使用 unboundid 更改 LDAP 中的用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435841/

相关文章:

java - 从 Controller 获取正在运行的作业实例状态

java - 以编程方式批量导入 LDIF

java - java中的多态性

java - LDAP - 无法创建具有国家/地区的新人

ruby-on-rails - 如何在 Rail3App 中使用 Ruby 在 Active Directory 中存储图片?

java - BeanCreationException : Invocation of init method failed

linux - 未绑定(bind)服务器未响应未绑定(bind)客户端 API 发出的 dns 查询

java - 使用分页获取组成员 - unboundid

64 位 jvm 上的 Java 内存不足

java - 尝试使用 Math.floor 对数字进行舍入,但它没有在正确的点将它们切断