首页 > 试题

enable的用法

更新时间:2022-12-09 18:29:53 阅读: 评论:0

2019年海南化学-碳酸化学式


2022年12月9日发(作者:黑板报模板)

SpringSecurityConfig:注解EnableWebSecurity启⽤Web安全

@EnableWebSecurity是SpringSecurity⽤于启⽤Web安全的注解。典型的⽤法是该注解⽤在某个Web安全配置类上(实现了接

⼝WebSecurityConfigurer或者继承⾃WebSecurityConfigurerAdapter)。典型的使⽤例⼦如下:

@Configuration

@EnableWebSecurity

publicclassMyWebSecurityConfigurationextendsWebSecurityConfigurerAdapter{

@Override

publicvoidconfigure(WebSecurityweb)throwsException{

ng()

//SpringSecurityshouldcompletelyignoreURLsstartingwith/resources/

.antMatchers("/resources/**");

}

@Override

protectedvoidconfigure(HttpSecurityhttp)throwsException{

izeRequests().antMatchers("/public/**").permitAll().anyRequest()

.hasRole("USER").and()

//Possiblymoreconfiguration...

.formLogin()//enableformbadlogin

//tpermitAllforallURLsassociatedwithFormLogin

.permitAll();

}

@Override

protectedvoidconfigure(AuthenticationManagerBuilderauth)throwsException{

auth

//enableinmemorybadauthenticationwithaurnamed"ur"and"admin"

.inMemoryAuthentication().withUr("ur").password("password").roles("USER")

.and().withUr("admin").password("password").roles("USER","ADMIN");

}

//Possiblymoreoverriddenmethods...

}

该注解其实起到了如下效果:

1.控制SpringSecurity是否使⽤调试模式(通过注解属性debug指定),缺省为fal,表⽰缺省不使⽤调试模式;

2.导⼊WebSecurityConfiguration,⽤于配置Web安全过滤器FilterChainProxy;

1.若⼲个WebSecurityConfigurerAdapter作⽤于⼀个WebSecurity⽣成⼀个最终使⽤的web安全过滤器FilterChainProxy

3.如果是Servlet环境,导⼊WebMvcSecurityConfiguration;

4.如果是OAuth2环境,导⼊OAuth2ClientConfiguration;

5.使⽤注解@EnableGlobalAuthentication启⽤全局认证机制;

SpringSecurity依赖于全局认证机制,所以这⾥启⽤全局认证机制是很⾃然的事。

注解@EnableGlobalAuthentication⼜导⼊了AuthenticationConfiguration⽤于全局认证机制配置;

AuthenticationConfiguration主要⽬的⽤于配置认证管理器组件AuthenticationManager。

AuthenticationManager会在运⾏时⽤于认证请求者⾝份。

在⾮Springboot的SpringWebMVC应⽤中,该注解@EnableWebSecurity需要开发⼈员⾃⼰引⼊以启⽤Web安全。⽽在基

于Springboot的SpringWebMVC应⽤中,开发⼈员没有必要再次引⽤该注解,Springboot的⾃动配置机制WebSecurityEnablerConfiguration已经

引⼊了该注解,如下所⽰:

t;

//省略imports⾏

@Configuration

//仅在存在WebSecurityConfigurerAdapterbean时该注解才有可能⽣效

//(最终⽣效与否要结合其他条件综合考虑)

@ConditionalOnBean()

//仅在不存在springSecurityFilterChain时该注解才有可能⽣效

//(最终⽣效与否要结合其他条件综合考虑)

@ConditionalOnMissingBean(name=_SECURITY_FILTER_CHAIN)

//仅在Servlet环境下该注解才有可能⽣效

//(最终⽣效与否要结合其他条件综合考虑)

@ConditionalOnWebApplication(type=T)

@EnableWebSecurity//<======这⾥启⽤了Web安全

publicclassWebSecurityEnablerConfiguration{

}

WebSecurityEnablerConfiguration对注解@EnableWebSecurity的使⽤并没有遵循上⾯所举的典型⽤法的例⼦。实际上,⼀个SpringWeb应⽤

中,WebSecurityConfigurerAdapter可能有多个,@EnableWebSecurity可以不⽤在任何⼀个WebSecurityConfigurerAdapter上,可以⽤在每

个WebSecurityConfigurerAdapter上,也可以只⽤在某⼀个WebSecurityConfigurerAdapter上。多处使⽤@EnableWebSecurity注解并不会导致问

题,其最终运⾏时效果跟使⽤@EnableWebSecurity⼀次效果是⼀样的。

源代码

源代码版本E

uration;

nted;

ion;

;

uration;

;

GlobalAuthentication;

urityConfigurer;

/**

*

*@eWebSecurityConfigurer

*@eWebSecurityConfigurerAdapter

*

*@authorRobWinch

*@since3.2

*/

@Retention(value=E)

@Target(value={})

@Documented

//导⼊WebSecurityConfigurationWeb安全配置,SpringWebMvc有关安全的配置,OAuth2有关安全的配置

@Import({,

,

})

//启⽤全局安全认证机制

@EnableGlobalAuthentication

@Configuration

public@interfaceEnableWebSecurity{

/**

*tisfal.

*@returniftrue,enablesdebugsupportwithSpringSecurity

*/

booleandebug()defaultfal;

}

本文发布于:2022-12-09 18:29:53,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/74158.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:enable的用法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图