我想更好地瞭解Spring引導的自動配置。特別是我需要添加一些自定義彈簧安全配置來禁用HTTP OPTIONS動詞的身份驗證,以便使我的CORS請求正常工作。使用自定義HttpSecurity配置擴展SpringBootWebSecurityConfiguration
默認情況下,如果沒有任何自定義配置,則Spring Boot的自動配置會加載SpringBootWebSecurityConfiguration
。
我想要做的是繼續使用此自動配置,但添加一些額外的http配置。我試過這個:
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
Logger logger = LogManager.getLogger (SecurityConfiguration.class);
@Override
protected void configure (HttpSecurity http) throws Exception {
logger.info ("--- ALLOW all HTTP OPTIONS Requests");
http.authorizeRequests().antMatchers (HttpMethod.OPTIONS, "*//**").permitAll();
}
}
但是這不能正常工作。當我通過SpringBootWebSecurityConfiguration
以及上面的代碼進行調試時,我可以看到我的configure
-method和springs自動配置都已執行,但看起來好像我的http
-配置優先。
那麼這是否意味着自動配置只能在有或無種方式?或者我可以使用自動配置,但仍然使用一些自定義antMatcher擴展它?
這種情況下的最佳做法是什麼?
應該不是你的SecurityConfiguration類與註釋'@ EnableWebSecurity'呢? –