2、spring security流程解读之自动配置类

在上一节我们介绍了怎么去使用spring security及相关配置的使用。接下来我们来看一下spring security的整个运行流程。

我们使用的是springboot项目,那么springboot的特点是配置自动加载。所以我们第一步是先找到对应的spring security的自动配置类。

找到spring-boot-autoconfigure jar包,查看META-INF/spring.factories文件,发现有3个和security servlet相关的自动配置 ,下面对这3个配置类进行详解。

配置类

SecurityAutoConfiguration:该类是spring security的核心自动配置类

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(DefaultAuthenticationEventPublisher.class)
@EnableConfigurationProperties(SecurityProperties.class)
@Import({ SpringBootWebSecurityConfiguration.class, WebSecurityEnablerConfiguration.class,
      SecurityDataConfiguration.class })
public class SecurityAutoConfiguration {

   @Bean
   @ConditionalOnMissingBean(AuthenticationEventPublisher.class)
   public DefaultAuthenticationEventPublisher authenticationEventPublisher(ApplicationEventPublisher publisher) {
      return new DefaultAuthenticationEventPublisher(publisher);
   }

}

类上面有@Import注解,分别导入了SpringBootWebSecurityConfiguration、WebSecurityEnablerConfiguration、SecurityDataConfiguration。而该类本身只是创建了DefaultAuthenticationEventPublisher类型的bean。

SpringBootWebSecurityConfiguration:如果项目中没有配置WebSecurityConfigurerAdapter实现类的话,则会默认创建一个。WebSecurityConfigurerAdapter是spring security的核心配置类,通过继承它,可以对任意的请求进行拦截及访问控制。

WebSecurityEnablerConfiguration:该类引入了@EnableWebSecurity和@EnableGlobalAuthentication,而这两个注解又导入了WebSecurityConfiguration、SpringWebMvcImportSelector、OAuth2ImportSelector、AuthenticationConfiguration。

WebSecurityConfiguration:用来创建WebSecurity,通过它来构建一个FilterChainProxy,一个链路过滤器,在上一节中SecurityConfig中配置的一些认证信息最后都会被解析成一个个Filter对请求进行拦截。

        SpringWebMvcImportSelector:该类导入了WebMvcSecurityConfiguration,WebMvcSecurityConfiguration创建了CsrfRequestDataValueProcessor的bean,用来防止跨域请求伪造。

        OAuth2ImportSelector:这个导入的类是和oauth2和reactive相关的,这里不做讨论。

        AuthenticationConfiguration:这里面只要是配置了认证相关的类,比如        AuthenticationManagerBuilder以及认证配置相关的类(GlobalAuthenticationConfigurerAdapter)

        SecurityDataConfiguration:自动添加spring security和spring data的集成

自此spring security需要导入的一些配置类都已经列出来了,如下所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值