之前写了一个关于session的,看到大家现在用spring security还挺多,相比当时我开始用的时候,大家都在shiro。就写几篇关于spring security实践以后的总结吧。
先从整体的spring security架构设计谈谈。(后面很多内容都是借用官网最新文档)
spring security是spring框架下的安全解决方案,从刚开始到现在,已经经历了很多版本,但是总的架构设计没有变化。目前借助springboot的大势,很多旗下的框架得到发展。
它的总体思路非常简单,就是利用servlet filter机制,再结合执行链模式,在request请求时,一层层捕获相应的信息,进行验证。如图:
所以,当我们不熟悉框架里其他组件的时候,可以自定义filter GenericFilterBean去实现任何拦截处理。如报文参数验证、请求日志输出、报文攻击校验、权限校验等等。
class TestFilter extends GenericFilterBean{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
// do something before the rest of the application
chain.doFilter(request, response); /