Spring 中用于身份验证的安全性中的通用身份验证过滤器
Generic Authentication Filter in Spring Security used for Authentication
我是 Spring 安全方面的新手,想更好地了解身份验证过程
这是我在网上找到的与该主题相关的内容,如果我在过程中有错误,请告诉我:
- 身份验证过程从
Filter
开始,可能是 FilterChain
的一部分。过滤器可能是 UsernamePasswordAuthenticationFilter
类型。 HTTP 请求被拦截并尝试创建 Authentication Request
(实现 Authentication
接口的 class 对象,即 UsernamePasswordAuthenticationToken
)。
Authentication
对象被委托给 AuthenticationManager
。
- 根据传递给
AuthenticationManager
的内容,它将其委托给适当的 AuthenticationProvider
(即 DaoAuthenticationProvider
),在那里进行真实身份验证。
AuthenticationProvider
将完全验证的 Authentication
对象发送到 AuthenticationManager
。
- 在调用
AuthenticationManager
的 Filter
中,调用 SecurityContextHolder.getContext().setAuthentication(authResult);
并完成身份验证过程。
我的问题是关于 Filter
class 和与身份验证相关的 FilterChain
的具体实现。
在我们的应用程序中,大多数身份验证过滤器扩展 AbstractAuthenticationProcessingFilter
并且 FilterChain 是 class CompositeFilter
。这个接口事实上的“正确”实现是什么?对于这样一个愚蠢的问题,我提前表示歉意,但仍然需要学习这个概念。
SecurityFilterChain
有一个实现,DefaultSecurityFilterChain
。
Filter
的实现太多,无法将一种实现视为最常见。 Spring 安全性中扩展 AbstractAuthenticationProcessingFilter
的可用身份验证过滤器是 UsernamePasswordAuthenticationFilter
、OAuth2LoginAuthenticationFilter
和 Saml2WebSsoAuthenticationFilter
。
要使用的“正确”过滤器在很大程度上取决于您的用例。
我是 Spring 安全方面的新手,想更好地了解身份验证过程
这是我在网上找到的与该主题相关的内容,如果我在过程中有错误,请告诉我:
- 身份验证过程从
Filter
开始,可能是FilterChain
的一部分。过滤器可能是UsernamePasswordAuthenticationFilter
类型。 HTTP 请求被拦截并尝试创建Authentication Request
(实现Authentication
接口的 class 对象,即UsernamePasswordAuthenticationToken
)。 Authentication
对象被委托给AuthenticationManager
。- 根据传递给
AuthenticationManager
的内容,它将其委托给适当的AuthenticationProvider
(即DaoAuthenticationProvider
),在那里进行真实身份验证。 AuthenticationProvider
将完全验证的Authentication
对象发送到AuthenticationManager
。- 在调用
AuthenticationManager
的Filter
中,调用SecurityContextHolder.getContext().setAuthentication(authResult);
并完成身份验证过程。
我的问题是关于 Filter
class 和与身份验证相关的 FilterChain
的具体实现。
在我们的应用程序中,大多数身份验证过滤器扩展 AbstractAuthenticationProcessingFilter
并且 FilterChain 是 class CompositeFilter
。这个接口事实上的“正确”实现是什么?对于这样一个愚蠢的问题,我提前表示歉意,但仍然需要学习这个概念。
SecurityFilterChain
有一个实现,DefaultSecurityFilterChain
。
Filter
的实现太多,无法将一种实现视为最常见。 Spring 安全性中扩展 AbstractAuthenticationProcessingFilter
的可用身份验证过滤器是 UsernamePasswordAuthenticationFilter
、OAuth2LoginAuthenticationFilter
和 Saml2WebSsoAuthenticationFilter
。
要使用的“正确”过滤器在很大程度上取决于您的用例。