'配置'之间的区别是什么?和' configureGlobal'方法?

时间:2016-01-26 21:02:53

标签: java spring spring-security

我正在使用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()

2 个答案:

答案 0 :(得分:1)

正如spring security doc所说:

  

configureGlobal方法的名称并不重要。但是,它   仅在类中配置AuthenticationManagerBuilder非常重要   使用@EnableWebSecurity@EnableGlobalMethodSecurity进行注释,   或@EnableGlobalAuthentication。否则就无法预测   结果

答案 1 :(得分:0)

这个答案帮助了我。

Difference between registerGlobal(), configure(), configureGlobal(),configureGlobalSecurity in Spring security

如果您已经扩展了WebMvcConfiguratorAdapter之类的类,则有两种安全设置选项。

  1. 使用configureGlobal()方法:

    • 单一@Configuration类方法。
    • 您可以在维护配置类的同时设置安全性。
    • SpringWebConfig扩展了WebMvcConfigurerAdapter + @EnableWebSecurity
  2. 覆盖configure()方法:

    • 特定安全性@Configuration类。
    • 您必须创建一个新的配置类来扩展WebSecurityConfiguratorAdapter以便进行安全设置。
    • MySecurityConfig扩展了WebSecurityConfigurerAdapter
相关问题