权限相关

@EnableWebSecurity

其作用如下:

  1. 加载了WebSecurityConfiguration配置类, 配置安全认证策略。
  2. 加载了AuthenticationConfiguration, 配置了认证信息。

源码如下:
@EnableWebSecurity 是一个组合注解,核心处有两部分:

  • @Import({WebSecurityConfiguration.class, ObjectPostProcessorConfiguration.class})
  • @EnableGlobalAuthentication

1、激活了 WebSecurityConfiguration 这个配置类,在这个配置类中, 注入了一个非常重要的 bean, 名称为: springSecurityFilterChain,这是 Spring Secuity 的核心过滤器,这是请求的认证入口。
2、使用了EnableGlobalAuthentication 注解,在这个注解中,激活了AuthenticationConfiguration 配置类, 这个类是来配置认证相关的核心类, 这个类的主要作用是向 spring 容器中注入 AuthenticationManagerBuilder, AuthenticationManagerBuilder 其实是使用了建造者模式,他能建造 AuthenticationManager。

  1. @Retention(RetentionPolicy.RUNTIME)
  2. @Target({ElementType.TYPE})
  3. @Documented
  4. @Import({WebSecurityConfiguration.class, ObjectPostProcessorConfiguration.class})
  5. @EnableGlobalAuthentication
  6. public @interface EnableWebSecurity {
  7. boolean debug() default false;
  8. }
  9. @Retention(RetentionPolicy.RUNTIME)
  10. @Target({ElementType.TYPE})
  11. @Documented
  12. @Import({AuthenticationConfiguration.class})
  13. public @interface EnableGlobalAuthentication {}