java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @EnableWebSecurity注解

Spring中的@EnableWebSecurity注解详解

作者:见贤思齐焉,,

这篇文章主要介绍了Spring中的@EnableWebSecurity注解详解,EnableWebSecurity注解是个组合注解,它的注解中,又使用了@EnableGlobalAuthentication注解,需要的朋友可以参考下

@EnableWebSecurity注解

首先,EnableWebSecurity注解是个组合注解,它的注解中,又使用了@EnableGlobalAuthentication注解:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class})
@EnableGlobalAuthentication
@Configuration
public @interface EnableWebSecurity {
    boolean debug() default false;
}

在这里插入图片描述

WebSecurityConfiguration.class

首先,激活了WebSecurityConfiguration配置类,在这个配置类中, 注入了一个非常重要的bean, bean的name为: springSecurityFilterChain

这是Spring Secuity的核心过滤器, 这是请求的认证入口。

源码片段如下:

    @Bean(
        name = {"springSecurityFilterChain"}
    )
    public Filter springSecurityFilterChain() throws Exception {
        boolean hasConfigurers = this.webSecurityConfigurers != null && !this.webSecurityConfigurers.isEmpty();
        if (!hasConfigurers) {
            WebSecurityConfigurerAdapter adapter = (WebSecurityConfigurerAdapter)this.objectObjectPostProcessor.postProcess(new WebSecurityConfigurerAdapter() {
            });
            this.webSecurity.apply(adapter);
        }
        return (Filter)this.webSecurity.build();
    }
    @Bean
    @DependsOn({"springSecurityFilterChain"})
    public WebInvocationPrivilegeEvaluator privilegeEvaluator() {
        return this.webSecurity.getPrivilegeEvaluator();
    }

@EnableGlobalAuthentication

使用了EnableGlobalAuthentication 注解, 注解源码为:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({AuthenticationConfiguration.class})
@Configuration
public @interface EnableGlobalAuthentication {
}

在这个注解中,激活了AuthenticationConfiguration配置类, 这个类是来配置认证相关的核心类, 这个类的主要作用是,向spring容器中注入AuthenticationManagerBuilder。 这个类使用了建造者模式, 它能构建AuthenticationManager, 这个类前面提过,是身份认证的入口。

总结

EnableWebSecurity注解有两个作用:

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

到此这篇关于Spring中的@EnableWebSecurity注解详解的文章就介绍到这了,更多相关@EnableWebSecurity注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文