java - 'configure' 和 'configureGlobal' 方法有什么区别?

标签 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");
  }
}

但还有另一种使用较少的方法,覆盖 WebSecurityConfigurerAdapter 中的 configure() 方法:

@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() 方法有什么意义?

最佳答案

这个答案对我有帮助。

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

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

  1. 使用 configureGlobal() 方法:

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

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

关于java - 'configure' 和 'configureGlobal' 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023900/

相关文章:

java - com.fasterxml.jackson.core.JsonGenerationException : Can not write a field name, 期待一个值

java - SpringBoot 2.0.2.RELEASE 中的 BCryptPasswordEncoder 定义

Java 重用接口(interface)方法

java - 按分隔符分割 PDF?

java - 在 jar 属性文件中使用属性占位符

spring - Spring Bean 的原型(prototype)是做什么用的?

java - 在 JTextField 中键入会启用一个按钮。使用 KeyListener 是错误的吗?

spring - 避免在 Spring MVC 中导致 "400 - Bad Request"状态代码的 POST 请求

java - 使用 Spring JPA Hibernate 的性能

java - 迁移到 Spring Boot 2 - 安全编码密码看起来不像 BCrypt