Spring Boot整合Spring Security简记-过
2018-01-17 本文已影响256人
78240024406c
new無语 转载请注明原创出处,谢谢!
Spring Security的安全Web架构完全基于标准的Servlet过滤器。
本章简述各个过滤器的职责。
过滤器排序
FilterChainProxy
-
ChannelProcessingFilter
: 定向不同协议。 -
SecurityContextPersistenceFilter
: 维护HttpSession,装填SecurityContext
。请求结束时,复制保存SecurityContext
和请求状态,清除SecurityContextHolder
。 -
ConcurrentSessionFilter
: 维持更新用户的持续请求状态。 -
认证处理机制
:UsernamePasswordAuthenticationFilter
、OAuth2ClientAuthenticationProcessingFilter
等,装填请求令牌信息。 SecurityContextHolderAwareRequestFilter
JaasApiIntegrationFilter
-
RememberMeAuthenticationFilter
: 用户未认证时,请求缓存cookie用户信息,符合条件,则默认提供用户信息认证RememberMeAuthenticationToken
。 -
AnonymousAuthenticationFilter
: 用户未登录时,请求匿名登陆,提供匿名用户信息AnonymousAuthenticationToken
进行访问系统。 -
ExceptionTranslationFilter
: 捕获Spring Security异常,返回HTTP错误响应或者调用AuthenticationEntryPoint
。 -
FilterSecurityInterceptor
: 负责处理HTTP资源的安全性。调用AuthenticationManager
、AccessDecisionManager
。
-
SecurityContextRepository
: 加载和存储context接口。 -
AccessDecisionManager
: 权限验证,功能具体授权于DecisionVoter
集合。 -
RunAsManager
: 临时替换Authentication
。 -
AfterInvocationManager
: 后置权限验证,可对资源返回值进行修改,或者报异常(后置权限验证失败)。
认证机制
终端提交请求之后,都需要在服务器端进行收集身份验证信息(HTTP表单或者HTTP Header),在Spring Security中,这种收集认证信息的功能叫做“认证机制”(Authentication Mechanism)。
AuthenticationEntryPoint
AuthenticationEntryPoint
负责将用户定向到其它入口。
-
LoginUrlAuthenticationEntryPoint
:定向到表单登陆页面。 -
Http401AuthenticationEntryPoint
:发送401状态码。