gpt4 book ai didi

java - Spring Security - 两个独立的身份验证信息源

转载 作者:行者123 更新时间:2023-12-01 05:43:53 25 4
gpt4 key购买 nike

我的 Spring Security 基于表单的登录当前包含一个表单和默认的 LdapAuthenticationProvider,我能够正确进行身份验证。但有一个新的要求来检查用户是否已启用。此信息位于数据库而不是 LDAP 中。那么我该怎么做呢?

我是否应该考虑使用 AbstractAuthenticationProcessingFilter 并在 successAuthentication 方法中执行额外检查

或者有更好的方法来做到这一点。

最佳答案

我想说,扩展UsernamePasswordAuthenticationFilter并覆盖attemptAuthentication()是一个好方法。在 attemptAuthentication() 中,您可以检查数据库数据和 LDAP 数据。您可以使用 UserDetailsS​​ervice 加载用户信息,例如 this .

另一种方法是(正如您自己建议的那样)扩展 AbstractAuthenticationProcessingFilter 并在 FORM_LOGIN 过滤器之后运行过滤器,如下所示:

<http ...>
...
<custom-filter after="FORM_LOGIN_FILTER" ref="myAuthenticationProcessingFilter" />
</http>

一个好主意可能是为 LDAP 和 DB 身份验证创建 2 个单独的过滤器,并一个接一个地运行。这样您就可以根据需要关闭其中任何一个。

This spring 文档的一部分将帮助您自定义过滤器。

关于java - Spring Security - 两个独立的身份验证信息源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com