I'm using Java - Apache Directory Client API 用于使用 ldapConnectionTemplate 访问 Apache DS Ldap Server。
我正在尝试实现一项允许用户重置/更改密码的功能。我的密码策略的密码历史记录属性值为 5。因此,用户将无法使用前5个密码中的任何一个。
当我使用 modifyPassword 方法更改密码(即通过传递当前和新密码作为用户(时,它遵循密码历史记录策略。 即我不允许使用前 5 个密码中的任何一个并按预期获得密码异常。但是当使用重置选项(即 - 仅新密码(时,它不遵守密码策略。它接受任何值(包括当前值(并更新密码。
如何使重置密码方案遵循密码历史记录策略?欢迎任何想法,建议和解决方案。
我不相信你想要的行为在任何地方都有指定。
您所说的"重置"的想法是管理员将其设置为已知内容,告诉用户它是什么,并且pwdReset
属性设置为 TRUE,以便用户在下次登录时被迫立即更改它 - 您必须通过使用 PasswordPolicy
请求控件并检查任何PasswordPolicyResponse
来强制执行CHANGE_AFTER_RESET
。
管理员应该受到pwdHistory
的约束没有特别的原因,无论如何,用户都将被迫再次更改密码,此时他将受到pwdHistory
的约束。