簡體   English   中英

“configure”和“configureGlobal”方法有什么區別?

[英]What's the difference between 'configure' and 'configureGlobal' methods?

我正在玩 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()方法有什么意義?

這個答案幫助了我。

Spring security中registerGlobal()、configure()、configureGlobal()、configureGlobalSecurity的區別

如果您已經擴展了WebMvcConfiguratorAdapter類的類,則您有兩種安全設置選擇。

  1. 使用configureGlobal()方法:

    • 單個@Configuration類方法。
    • 您可以在維護配置類的同時設置安全性。
    • SpringWebConfig 擴展了WebMvcConfigurerAdapter + @EnableWebSecurity
  2. 覆蓋configure()方法:

    • 特定的安全@Configuration類。
    • 您必須創建一個新的配置類來擴展WebSecurityConfiguratorAdapter以進行安全設置。
    • MySecurityConfig擴展了WebSecurityConfigurerAdapter

正如春季安全文檔所說:

configureGlobal方法的名稱並不重要。 但是,重要的是僅在用@EnableWebSecurity@EnableGlobalMethodSecurity@EnableGlobalAuthentication注釋的類中配置AuthenticationManagerBuilder 否則會產生不可預測的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM