这两个类:
WebSecurityConfigurerAdapter
GlobalAuthenticationConfigurerAdapter
似乎对我做同样的事情。它们都提供了不同的方法
configure(...)
来定制WebSecurity,例如配置UserDetailsService
。在互联网上找到的一些示例中,我看到两个类都得到了扩展(像这个类,http://ryanjbaxter.com/2015/01/06/securing-rest-apis-with-spring-boot/):@Configuration
class WebSecurityConfiguration extends GlobalAuthenticationConfigurerAdapter {...}
和
@EnableWebSecurity
@Configuration
class WebSecurityConfig extends WebSecurityConfigurerAdapter {...}
,但在某些示例中,仅需要
WebSecurityConfigurerAdapter
(扩展)。我不确定两者之间的区别吗?另一个人不能做什么?或者,如果都需要它们,那么对于Spring安全性的哪个方面来说,它们中的哪一个呢?
我所看到的唯一区别是
@EnableWebSecurity
通常在扩展WebSecurityConfigurerAdapter
的类上方进行注释,但在扩展GlobalAuthenticationConfigurerAdapter
的类上方却未添加注释============ 实验 ==================
我尝试删除扩展了
GlobalAuthenticationConfigurerAdapter
的类,并将与UserDetailsService相关的代码携带到扩展了WebSecurityConfigurerAdapter
的类中(有关实际代码,请参见上面的链接),它仍然可以工作。 最佳答案
基本上WebSecurityConfigurerAdapter
用于创建FilterChainProxy
请引用此docs。GlobalAuthenticationConfigurerAdapter
用作SecurityConfigurer
,可用于轻松构建内存身份验证,LDAP身份验证,基于JDBC的身份验证,添加UserDetailsService以及添加AuthenticationProvider。请参阅此docs希望对您有所帮助!