使用java打开用户密码更改

时间:2012-05-31 08:49:38

标签: opends

我需要开发一个代码,用于在管理员设置后使用Spring LDAP更改用户密码。我使用OpenDS 2.2作为我的目录服务器。

每当我使用我的代码更改它时,它会将属性“pwdReset”设置为true,这意味着需要更改密码。但是再次更改密码不会将此属性重置为false。我设法得到一个解决方法,即通过java代码将“pwdReset”显式重置为false,但这不是也不应该是正确的方法。

根据我的理解,这是一个操作属性,用户不应该修改,要走的方法是首先验证用户身份,然后在用户仍然进行身份验证时更改密码。

这是我需要帮助的地方。如果有人能够提供示例代码来实现我在前一段中提到的内容,我将不胜感激。

我目前使用的代码如下所示

     ModificationItem item = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new        BasicAttribute("userPassword", password));
             ldapTemplate.modifyAttributes("cn="+userName, new ModificationItem[]{item});

1 个答案:

答案 0 :(得分:0)

OpenDS中的密码重置(OpenDJ是OpenDS的主动开发的分支,请查看opendj.forgerock.org),这是一项操作,包括在作为另一个用户进行身份验证时更改用户帐户的密码(通常为cn = Directory Manager) )。 当经过身份验证的用户正在更改自己的密码时,它不是重置,而是一个更改(并非使用ProxiedAuthorization控件时也是如此)。

在任何情况下,如果定义密码策略以在重置密码时强制更改密码,则将设置pwdReset属性。 如果您知道密码将始终由管理帐户更改,则您不应在重置时强制更改密码。

亲切的问候, 朱利。

相关问题