Spring Security 原理

spring security 在web应用中是基于filter的;

Filter:

spring security 维护了一个filter chain,chain中的每一个filter都具有特定的责任,并根据所需的服务在配置中添加。filter的顺序很重要,因为他们之间存在依赖关系。spring security中有如下filter(按顺序的):

ChannelProcessingFilter,因为它可能需要重定向到不同的协议

SecurityContextPersistenceFilter,可以在web请求开头的SecurityContextHolder中设置SecurityContext,并且SecurityContext的任何更改都可以复制到HttpSession当web请求结束时(准备好与下一个web请求一起使用)

ConcurrentSessionFilter,

身份验证处理-UsernamePasswordAuthenticationFilter,CasAuthenticationFilter,BasicAuthenticationFilter等。以便SecurityContextHolder可以修改为包含有效的Authentication请求令牌

SecurityContextHolderAwareRequestFilter

JaasApiIntegrationFilter

RememberMeAuthenticationFilter,记住我服务处理

AnonymousAuthenticationFilter,匿名身份处理,更新SecurityContextHolder

ExceptionTranslationFilter,获任何Spring Security异常,以便可以返回HTTP错误响应或启动适当的AuthenticationEntryPoint

FilterSecurityInterceptor,用于保护web URI并在访问被拒绝时引发异常

 

你可能感兴趣的:(Spring,Security)