java - 使用 JNDI 从 Java 在 LDAP 中使用 ppolicy 时如何获取特定错误

标签 java authentication ldap jndi openldap

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

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

InitialLdapContext ctx = new InitialLdapContext(env, null);

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

我找到了 a related post这显示了如何做到这一点的例子;然而,这让我更加困惑,因为我无法在任何地方找到诸如 PasswordExpiringResponseControl 之类的类,而且我立即遇到异常,因此我无法执行 respControls = ctx.getResponseControls()

最佳答案

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

如果您不熟悉 Spring,那么学习起来可能有点困难;但是,如果您确实想走那条路,this is a good article on it ,包括如何用JNDI设置等等。

关于java - 使用 JNDI 从 Java 在 LDAP 中使用 ppolicy 时如何获取特定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365683/

相关文章:

c# - ASP.NET/IIS : Log out all users

java - 身份验证后存储附加信息[Spring]

asp.net - 跨应用程序的表单例份验证

oracle - 以全局用户身份登录 oracle db

java - 公式操作算法

java - 使用 JAXB 解码 XOP

java - 访问静态成员类

java - 发出请求时 JAX-RS 'endpoint' 的行为如何?

rest - Grails REST用户身份验证

ruby-on-rails - 使用 Devise ldap 身份验证时出现编码错误