SpringLDAP不会抛出特定的错误代码

a64a0gku  于 2021-06-27  发布在  Java
关注(0)|答案(2)|浏览(380)

环境
ldap服务器:交钥匙openldap
SpringLDAP核心版本:2.3.3.0
什么是活动
用户已锁定在ldap服务器中
用户试图通过我们的webapp登录
登录失败
错误代码49-抛出无效凭据
期待什么
应引发特定异常(例如:错误代码775用户\帐户\已锁定)
例外
在异常中找不到注解和数据等信息

org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
    at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)```
vfhzx4xs

vfhzx4xs1#

ldap规范是基础。它定义了错误代码。ldap的实现,如open\u ldap、active\u directory等。。可以用异常消息定义自己的子错误代码。active directory在错误消息中提供自己的子错误代码。ldap相关rfcsactive directory错误代码

ycl3bljg

ycl3bljg2#

ldap协议rfc没有为被拒绝的身份验证请求提供所需的粒度级别,它只是错误代码49 invalidcredentials。标准中没有锁定的帐户。
在另一个关于错误代码的ldap wiki文档中,它还指定错误代码49对锁定的帐户有效。
如果您热衷于使用此功能,您可以选择控制安全层并为应用程序施加最大重试次数(而不是依赖于第三方ldap服务器中的默认值),跟踪是否达到此功能,并抛出/返回所需的适当响应。我可以在这篇文章中看到一个例子,说明你是如何做到这一点的,但是如果你想这样做的话,我会投入更多的时间来寻找最好的解决方案。

相关问题