【发布时间】:2012-02-28 08:17:11
【问题描述】:
我正在尝试通过 InvalidAttributeValueException 实例确定 LDAP 错误代码 19(密码策略错误)的原因,因此我将能够在 UI 中显示信息丰富的错误消息。
我当前使用的 LDAP 服务是 openLDAP(作为应用程序中的嵌入式 LDAP),它提供了一个信息丰富的消息,足以显示(即"[LDAP: error code 19 - Password fails quality checking policy]" & "[LDAP: error code 19 - Password is in history of old passwords]")
但是现在我想支持 Active Directory 和其他 LDAP 提供程序(这将是外部的),并且从我在 rfc2251 和其他各种来源中看到的内容来看 - 每个实现都有自己的异常消息,唯一的标准是错误代码 19 映射到 InvalidAttributeValueException 而不是特定问题。
是否有解决方案(甚至是部分解决方案)来区分错误代码 19 的不同原因?
给定InvalidAttributeValueException 实例,有没有办法查询 LDAP 以获取该问题的答案?
谢谢
【问题讨论】:
-
从未见过这样的方法。您在 RFC 2251 中找到的内容确实回答了您的问题。
-
我不认为自 1997 年以来没有人找到解决此问题的方法。必须有一些标准方法通过 JNDI 查询 LDAP 以查看密码更改失败的原因,显示一般消息就像“密码未通过质量检查”一样,由于在历史列表中而被拒绝的密码是邪恶且无法使用的。
-
如果有“一般消息”,它将在 RFC 中指定。
-
@EJP 你不明白我在评论最后一部分的意思,但我明白了要点。我扩展了我对 LDAP 的了解,显然我想要实现的功能根本无关紧要。请发布答案,以便我可以奖励您。谢谢。
-
正确,我没看懂,因为它没有意义。如果密码在历史列表中,您会收到一些这样的消息。如果质量检查失败,同上。您不会收到与历史列表问题相关的“质量检查”消息。
标签: java ldap jndi spring-ldap