我使用Java - Apache Directory Client API使用ldapConnectionTemplate访问Apache DS Ldap服务器。
我正在尝试实现一项允许用户重置/更改密码的功能。我的密码策略的密码历史属性值为5.因此用户将无法使用之前的5个密码。
当我使用modifyPassword方法更改密码时(即通过传递当前密码和新密码作为用户),它会遵守密码历史记录策略。即我不允许使用前5个密码中的任何一个并获得预期的密码异常。但是当使用重置选项(即 - 仅新密码)时,它不遵守密码策略。它接受任何值(包括当前值)并更新密码。
如何使重置密码方案符合密码历史记录策略?欢迎任何想法,建议和解决方案。
答案 0 :(得分:0)
我不相信你想要的行为是在任何地方指定的。
重置'在某种意义上,你的意思是管理员将它设置为已知的东西,告诉用户它是什么,并且pwdReset
属性设置为TRUE,以便用户在下次登录时被迫立即更改它 - 你必须使用PasswordPolicy
请求控件并检查CHANGE_AFTER_RESET
的任何PasswordPolicyResponse
来强制执行。
没有特别的理由为什么 admin 应该被pwdHistory
约束,无论如何用户将被迫再次更改密码,他 受pwdHistory
约束的时间。