使用@EnableWebSecurity 时,configureGlobal(..) 是不是需要@Autowired?
Posted
技术标签:
【中文标题】使用@EnableWebSecurity 时,configureGlobal(..) 是不是需要@Autowired?【英文标题】:Is @Autowired required on configureGlobal(..) when using @EnableWebSecurity?使用@EnableWebSecurity 时,configureGlobal(..) 是否需要@Autowired? 【发布时间】:2018-01-29 00:33:48 【问题描述】:在此示例中,configureGlobal
方法上有一个 @Autowired
注释:
@EnableWebSecurity
public class MultiHttpSecurityConfig
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER").and()
.withUser("admin").password("password").roles("USER", "ADMIN");
这是必要的还是 Spring 会自动将 AuthenticationBuilder 注入到带有 @EnableWebSecurity?
注释的方法上?
从when-to-use-spring-securitys-antmatcher拉取代码sn-p
【问题讨论】:
【参考方案1】:根据 Spring 文档,@EnableWebSecurity
是一个注释,它只会关闭默认的 Web 应用程序安全配置,以便让您添加一些自定义功能,例如 configureGlobal
。
configureGlobal
应该是 @Autowired
以便获取 AuthenticationManagerBuilder
bean 并为应用程序定义身份验证类型。
总而言之,@EnableWebSecurity
不注入 bean,它只提供了一种自定义 Web 安全应用程序的方法。
@EnableWebSecurity
【讨论】:
以上是关于使用@EnableWebSecurity 时,configureGlobal(..) 是不是需要@Autowired?的主要内容,如果未能解决你的问题,请参考以下文章
Spring web security:@EnableWebSecurity 过时了吗?
java Spring @EnableResourceServer 和 @EnableWebSecurity
Spring security 的 @EnableWebSecurity 与 oauth 的 @EnableResourceServer
@EnableWebSecurity 和 @EnableWebFluxSecurity 有啥区别?