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

news/2024/6/29 12:17:41 标签: security, spring, authentication, session, string, null

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

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

 

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

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

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

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

 

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

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

同样的配置

 


http://www.niftyadmin.cn/n/1639089.html

相关文章

kie-api介绍和使用

kie在drools jbpm uberfire里广泛被使用&#xff0c;下面对kie&#xff0d;api中的几个重要组件做下简单介绍 maven依赖 <dependency><groupId>org.kie</groupId><artifactId>kie-api</artifactId><version>6.0.2.Final</version>…

Netty与SpringBoot整合

Netty与Spring Boot的整合 ​ 最近有朋友向我询问一些Netty与SpringBoot整合的相关问题&#xff0c;这里&#xff0c;我就总结了一下基本整合流程&#xff0c;也就是说&#xff0c;这篇文章 &#xff0c;默认大家是对netty与Spring&#xff0c;SpringMVC的整合是没有什么问题的…

[js]JS计算浮点数四舍五入备忘

function roundFloat(number,digits){ with(Math){ return round(number*pow(10, digits))/pow(10, digits); }} roundFloat(total,2)

java enum在switch中的使用

实际开发中&#xff0c;很多人可能很少用枚举类型。更多的可能使用常量的方式代替。但枚举比起常量来说&#xff0c;含义更清晰&#xff0c;更容易理解&#xff0c;结构上也更加紧密。看其他人的博文都很详细&#xff0c;长篇大论的&#xff0c;这里理论的东西不说了&#xff0…

MQTT简介

什么是MQTT ​ MQTT是基于二进制消息的发布/订阅编程模式的消息协议&#xff0c;最早由IBM提出的&#xff0c;如今已经成为OASIS规范。由于规范很简单&#xff0c;非常适合需要低功耗和网络带宽有限的IoT场景。 MQTT使用场景 与XMPP相比有什么特点 ​ 同MQTT类似的是XMPP协议…

[Lucene那点事儿]建立索引的一点想法

Lucene建立索引的时候&#xff0c;需要使用到分词器-Analyzer&#xff0c;分词器的作用就是将当前的文本按照分词规则进行分词&#xff0c;然后建立索引&#xff0c;检索结果的精确度很大程度上来自于索引的建立是否合理而准确。 lucene提供了一些内置的分词器&#xff1a; *…

painless脚本应用及与elasticsearch,java的结合使用

写在前面 painless是一个较新的脚本语言&#xff0c;毕竟不是一加一等于二那么简单&#xff0c;开始不懂是很正常的&#xff0c;如果看不懂 请看第二遍第三遍乃至N次 相信我 一定能看得懂的&#xff0c;书读百遍&#xff0c;其义自见 es5以上版本推出了简单安全快捷的…

代码之丑

推荐两篇文章&#xff0c;主要讲代码质量的&#xff0c;很基础&#xff0c;代码之丑 在公司看了不少这样的代码&#xff0c;颇有感触 http://dreamhead.blogbus.com/logs/80612297.html http://dreamhead.blogbus.com/logs/80223223.html