权限相关
@EnableWebSecurity
其作用如下:
- 加载了WebSecurityConfiguration配置类, 配置安全认证策略。
- 加载了AuthenticationConfiguration, 配置了认证信息。
源码如下:@EnableWebSecurity
是一个组合注解,核心处有两部分:
@Import({WebSecurityConfiguration.class, ObjectPostProcessorConfiguration.class})
@EnableGlobalAuthentication
1、激活了 WebSecurityConfiguration 这个配置类,在这个配置类中, 注入了一个非常重要的 bean, 名称为: springSecurityFilterChain,这是 Spring Secuity 的核心过滤器,这是请求的认证入口。
2、使用了EnableGlobalAuthentication 注解,在这个注解中,激活了AuthenticationConfiguration 配置类, 这个类是来配置认证相关的核心类, 这个类的主要作用是向 spring 容器中注入 AuthenticationManagerBuilder, AuthenticationManagerBuilder 其实是使用了建造者模式,他能建造 AuthenticationManager。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({WebSecurityConfiguration.class, ObjectPostProcessorConfiguration.class})
@EnableGlobalAuthentication
public @interface EnableWebSecurity {
boolean debug() default false;
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({AuthenticationConfiguration.class})
public @interface EnableGlobalAuthentication {}