我正在使用Spring Security配置并发现,配置内存中身份验证的最常用方法是使用configureGlobal()
方法:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
auth
.inMemoryAuthentication()
.withUser("user").password("userPwd").roles("USER");
}
}
但还有另一种方法,它使用不太广泛,覆盖了来自configure()
的{{1}}方法:
WebSecurityConfigurerAdapter
我只是想知道,它们之间的区别是什么,@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication(
.withUser("user").password("userPwd").roles("USER");
}
}
方法的使用点configureGlobal()
超过了configure()
?
答案 0 :(得分:1)
正如spring security doc所说:
configureGlobal
方法的名称并不重要。但是,它 仅在类中配置AuthenticationManagerBuilder
非常重要 使用@EnableWebSecurity
,@EnableGlobalMethodSecurity
进行注释, 或@EnableGlobalAuthentication
。否则就无法预测 结果
答案 1 :(得分:0)
这个答案帮助了我。
如果您已经扩展了WebMvcConfiguratorAdapter
之类的类,则有两种安全设置选项。
使用configureGlobal()
方法:
@Configuration
类方法。WebMvcConfigurerAdapter
+ @EnableWebSecurity
覆盖configure()
方法:
@Configuration
类。WebSecurityConfiguratorAdapter
以便进行安全设置。MySecurityConfig
扩展了WebSecurityConfigurerAdapter