• 2023-09-22[SpringSecurity5.6.2源码分析十三]:LogoutFilter
    前言• SpringSecurity默认提供了登录的页面以及登录的接口,与之对应的也提供了登出页和登出请求• 登出请求对应的过滤器是LogoutFilter• 登出页对应的是DefaultLogoutPageGeneratingFilter、1.LogoutConfigurer• LogoutConfigurer是LogoutFilter对应的配置类,先看其主要方法
  • 2023-09-20[SpringSecurity5.6.2源码分析十二]:CsrfFilter
    前言• Csrf(跨站伪造请求):指的是用户在A网站认证完成后,A网站Cookie保存在了浏览器中,然后用户在B网站点击了钓鱼链接,使其让钓鱼请求带有了A网站的Cookie,从而让A网站认为这是一次正常的请求• 而SpringSecurity采用的是同步令牌模式(SynchronizerTokenPattern)来预防Csrf攻击•
  • 2023-09-18[SpringSecurity5.6.2源码分析十一]:CorsFilter
    前言• 跨域:两个域名的(协议、域名/ip、端口)有任意一个不同即视为跨域• 跨域资源共享(Cors):即浏览器允许访问其他跨域的资源• 而CorsFilter就是SpringSecurity用来处理Cors的过滤器1.CorsConfigurer• CorsConfigurer是CorsFilter对应的配置类,其中就只有一个重要方法• co
  • 2023-09-16[SpringSecurity5.6.2源码分析十]:HeaderWriterFilter
    前言• 为了安全考虑,添加启用浏览器保护的某些头是很有用的,比如X-Frame-Options,X-XSS-Protection和X-Content-Type-Options• 而HeaderWriterFilter就支持往响应头写入各种响应头1、HeadersConfigurer• HeadersConfigurer是HeaderWriterFilter对应的配置类,是在获取HttpSecur
  • 2023-09-14[SpringSecurity5.6.2源码分析八]:SecurityContextPersistenceFilter
    前言• 当我们不在其他线程而就在容器创建的线程中使用SecurityContextHolder.getContext()获取SecurityContext的时候,正常都能获取到• SecurityContext默认是放在线程中的,所以说在某个地方一定将SecurityContext放到线程中,而这个类就是SecurityContextPersistenceFilter1、Secu
  • 2023-09-11[SpringSecurity5.6.2源码分析六]:ChannelProcessingFilter
    1、基础用法• ChannelProcessingFilter是SpringSecurity的第一个过滤器,具体排序规则见FilterComparator,image.png• 主要作用:可限制服务端接受的安全协议,比如说仅支持Https或者Http1.1开启配置类:• 首先我们注册到容器中的WebSecurityConfigurerAdapter是针对于WebSecurity的
  • 2023-09-07[SpringSecurity5.6.2源码分析四]:WebSecurityConfiguration
    WebSecurityConfiguration的重点是通过WebSecurity创建FilterChainProxy• 先分析内部的方法1、elegatingApplicationListener• 看名字就能看出来注册了一个委托类型的监听器publicclassWebSecurityConfigurationimplementsImportAware,BeanClassLoaderAware{......
  • 2023-09-06[SpringSecurity5.6.2源码分析三]:SpringWebMvcImportSelector
    1、SpringWebMvcImportSelector• SpringSecurity支持在SpringMVC进行参数解析的时候填充参数,支持以下的对象• 通过@AuthenticationPrincipal,获取UserDetails• 通过@CurrentSecurityContext,获取SecurityContext• 通过参数类型为CsrfToken获取CsrfToken• 究其原因是因为Spr
  • 2023-09-05[SpringSecurity5.6.2源码分析二]:SecurityAutoConfiguration
    • SecurityAutoConfiguration是SpringSecurity最重要的一个自动配置类• 像以前版本的教程说要在启动类上配@EnableWebSecurity,现在也是由这个自动配置类负责引入• 分析一 已经介绍了DefaultAuthenticationEventPublisher,所以说重点就只有使用@Import导入的三个类,SpringBo
  • 2023-09-03[SpringSecurity5.6.2源码分析一]:spring.factories下有关SpringSecurity的配置类
    1、Spring.factories• 从下图可以看出spring-boot-autoconfigure/META-INF/spring.factories中关于SpringSecurity的自动配置类有以下这些org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,\org.springframework.boot.autoconfigure.securi