繁体   English   中英

spring认证提供者VS认证处理过滤器

[英]spring authentication provider VS authentication processing filter

spring身份验证提供程序和身份验证处理过滤器都还需要向authenticationManager注册?

身份验证提供者,我可以使用自定义身份验证提供者标签

但是spring身份验证提供程序和身份验证处理过滤器有什么不同?

认证管理器使用所有认证提供程序来认证它必须认证的认证令牌。

认证处理过滤器仅添加令牌(用户名密码)。 其他过滤器也添加令牌。 例如AnonymousProcessingFilter。

这个想法是将令牌生成与令牌身份验证分开。 这样,您可以轻松实现针对多个来源的身份验证之类的功能。

常规情况是每个令牌生成器只有一个提供程序。

根据Spring Security Architecture ,过程为:

  1. 过滤器用于拦截http请求并进行一些检查
  2. 一些过滤器正在检查请求标头,正文,Cookie等中的授权信息。您可以将它们称为Authentication Processing过滤器
  3. 身份验证的实际工作由另一个称为“身份验证提供程序”的参与者完成,因为如果实现需要过滤器,它将调用提供程序。
  4. 可能发生的情况是,筛选器和提供者之间可以保留一个提供者管理器,该管理器可以一一调用所有提供者,并查看其中是否有一部分可以处理它(如果可以):然后这样做。

在此处查看示例: 过滤器正在调用提供程序管理器以查找支持身份验证提供程序 ,如果是,则进行身份验证

  1. RememberMeAuthenticationFilter
  2. ProviderManager

在这里,您可以找到有关如何实现自定义过滤器的好示例: 自定义过滤器@Baeldung

请考虑过滤器仅在这样编码时才调用提供程序管理器或提供程序。 没有强制执行该规则的规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM