Spring Security:多個HTTP 設定無法正常運作
人們可能會遇到一個情況,需要多個HTTP 配置來客製化登入頁面和安全URL訪問,如以下場景所示:
@Configuration @Order(1) public static class ProviderSecurity extends WebSecurityConfigurerAdapter { // Security configuration for admin/* routes } @Configuration @Order(2) public static class ConsumerSecurity extends WebSecurityConfigurerAdapter { // Security configuration for consumer/* routes }
但是,這種方法可能會導致只有一個的差異配置已啟動。要解決這個問題,請參閱 Spring Security 參考指南:
@EnableWebSecurity public class MultiHttpSecurityConfig { // Authentication configuration @Configuration @Order(1) public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { // Security configuration for /api/* routes } @Configuration public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { // Security configuration for all other routes } }
重點:
在前面的範例中,出現問題的原因是第一個帶有/antMatcher 的配置(匹配所有URL)覆蓋了第二個配置,導致第二個配置的URL 不受保護。透過將第一個配置的範圍限制為僅 /admin/,第二個配置的 URL 可以獲得適當的安全機制。
以上是為什麼我的具有多個 HTTP 配置的 Spring Security 配置不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!