[spring security那点事儿]编写自己的过滤器

通常而言,使用spring security来进行身份验证的同时,还需要进行一些附加操作,注入校验码检查,session中安全信息的检查,用户最后登录流水记录等。不排除这些在ss执行完成后进入某个页面,在其渲染类中可以实现,但是这样的方式从设计角度而言,是拆分了登录的整个独立过程,是属于单纯的实现功能而实现功能。

所以这里我们就需要封装底层spring security过滤器,以实现自己需求的过滤器。

 

先说第一个常用需求:用户登录的时候检查校验码,并且记录用户的登录流水。

这里的重点在于将这两个逻辑代码切入到过滤器中,我们知道表单方式的身份检查过滤器是AuthenticationProcessingFilter,所以这里我们需要继承其并重写其中的attemptAuthentication(HttpServletRequest request)方法。已达到我们的目的。

注意上面的代码中,对于校验码的检查已经在异步请求中执行过了,只是有一个二次安全检查,其原理是相同的。

然后我们可以配置自己的过滤器:

 

同样的,对于第二个常用需求,就是用户注销后,清空session中的一些附加的重要信息,这里可以使用继承LogoutFilter,并重写其中的doFilterHttp(HttpServletRequest request,HttpServletResponse response, FilterChain chain)方法

这里做的是清空了session中的用户名称和用户id,为什么要这样做呢,因为在此之前我们在session中放入了上述两个值,为了那些配置了不使用ss过滤器而导致无法使用安全上下文取信息的页面。

同样的配置

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值