Spring安全性:WebSecurityConfigurerAdapter和GlobalAuthenticationConfigurerAdapter之间的区别

时间:2018-04-04 00:09:29

标签: java spring authentication spring-boot spring-security

这两个类:

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的类,并将与UserDetailsS​​ervice相关的代码传递给扩展WebSecurityConfigurerAdapter的类(请参阅上面的链接获取实际代码),它仍然有效。< / p>

1 个答案:

答案 0 :(得分:0)

基本上WebSecurityConfigurerAdapter用于创建FilterChainProxy 请参阅此docsGlobalAuthenticationConfigurerAdapter用作SecurityConfigurer,可用于轻松构建内存身份验证,LDAP身份验证,基于JDBC的身份验证,添加UserDetailsS​​ervice以及添加AuthenticationProvider&#39;秒。参考这个docs希望这有帮助!