基于角色得后台权限管理系统设计(三、spring security 之过滤器(详解)

spring security 提供大量得过滤器对系统资源进行保护

以下介绍主要过滤器以及顺序

一、WebAsyncManagerIntegrationFilter

将Security上下文与Spring Web中用于处理异步请求映射的 WebAsyncManager 进行集成

二、SecurityContextPersistenceFilter

在每次请求处理之前将该请求相关的安全上下文信息加载到SecurityContextHolder中,然后在该次请求处理完成之后,将SecurityContextHolder中关于这次请求的信息存储到一个“仓储”中,然后将SecurityContextHolder中的信息清除

例如在Session中维护一个用户的安全信息就是这个过滤器处理的。

三、HeaderWriterFilter

将指定得Header加入响应中

四、CsrfFilter

用于处理跨站请求伪造

五、LogoutFilter

用于处理退出登录

六、UsernamePasswordAuthenticationFilter

检测用户名/密码表单登录认证请求并作相应认证处理:
  1.session管理,比如为新登录用户创建新session(session fixation防护)和设置新的csrf token等
  2.经过完全认证的Authentication对象设置到SecurityContextHolder中的SecurityContext上;
  3.发布登录认证成功事件InteractiveAuthenticationSuccessEvent
  4.登录认证成功时的Remember Me处理
  5.登录认证成功时的页面跳转
默认情况下处理来自“/login”的请求。
从表单中获取用户名和密码时,默认使用的表单name值为“username”和“password”,这两个值可以通过设置这个过滤器的usernameParameter 和 passwordParameter 两个参数的值进行修改。

七、DefaultLoginPageGeneratingFilter、DefaultLogoutPageGeneratingFilter

用于生成默认登入表单页面、默认得登出页面

八、BasicAuthenticationFilter

处理 Http Basic认证 

大家在登录网站的时候,大部分时候是通过一个表单提交登录信息。

但是有时候浏览器会弹出一个登录验证的对话框,这就是使用HTTP基本认证

要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:  

一是在请求头中添加Authorization:  Authorization: "Basic 用户名和密码的base64加密字符串"  。
二是在url中添加用户名和密码。

九、RequestCacheAwareFilter

对请求缓存相关能力得过滤
1.请求缓存在安全机制启动时指定
2.请求写入缓存在其他地方完成
3.典型应用场景:
    1.用户请求保护的页面,
    2.系统引导用户完成登录认证,
    3.然后自动跳转到到用户最初请求页面

十、SecurityContextHolderAwareRequestFilter

使得request具有访问SecurityContextHolder 的能力,从而使请求真正意义上拥有接口HttpServletRequest中定义的getUserPrincipal这种访问安全信息的能力

十一、AnonymousAuthenticationFilter

匿名认证过滤器

十二、SessionManagementFilter

session管理过滤器

十三、ExceptionTranslationFilter

异常处理过滤器,用来处理处理 AccessDeniedException 和 AuthenticationException 异常

十四、FilterSecurityInterceptor

AbstractInterceptUrlConfigurer.createFilterSecurityInterceptor

一个请求处理的安全处理过滤器链的最后一个,检查用户是否已经认证,如果未认证执行必要的认证,对目标资源的权限检查,如果认证或者权限不足,抛出相应的异常:AccessDeniedException或者AuthenticationException

 

spring security 中有以上过滤器链对一个请求做了层层过滤,而作为开发者只需要对过滤规则做一定的配置即可。

你只需要自定义配置类继承自WebSecurityConfigurerAdapter 这个适配器、并且注解上@WebSecurityConfig 即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值