一旦管理员设置了 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});