3

我在 Web 应用程序中使用 JNDI 进行身份验证。在 OpenLDAP 方面,我使用 ppolicy 来(例如)在三次失败的登录尝试后阻止用户的帐户。

我的问题是我需要特定的错误消息(例如“帐户锁定”)来让用户知道具体问题是什么,但现在我在执行时遇到异常:

InitialLdapContext ctx = new InitialLdapContext(env, null);

异常中的消息只是[LDAP: error code 49 - Invalid Credentials].

我找到了一篇相关的帖子,其中展示了如何做到这一点的示例;但是,这让我更加困惑,因为我无法在PasswordExpiringResponseControl任何地方找到类,而且我马上就遇到了异常,所以我无法执行respControls = ctx.getResponseControls().

4

3 回答 3

3

这可能比它的价值更痛苦,但如果你使用Spring-LDAP,它会自动将这些错误代码转换为好的异常。不管怎样,这个库真的很好,从长远来看,它可能会让你的代码更简洁、更易于维护。

如果您不熟悉 Spring,那么可能会有一些学习曲线;但是,如果您确实想走这条路,这是一篇很好的文章,包括如何使用 JNDI 进行设置等。

于 2010-03-02T18:40:43.807 回答
3

几年没做java了,希望不用回去,但我已经把它加了书签,以防万一。

http://forums.oracle.com/forums/thread.jspa?messageID=9238232

我认为这正是您正在寻找的。

于 2011-05-05T00:21:19.077 回答
0

我还没有尝试过,但这也可能有用:http ://www.ibm.com/developerworks/tivoli/library/t-ldap-controls/

于 2010-03-02T18:58:39.413 回答