首頁 >Java >java教程 >為什麼我的具有多個 HTTP 配置的 Spring Security 配置不起作用?

為什麼我的具有多個 HTTP 配置的 Spring Security 配置不起作用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-29 18:05:17679瀏覽

Why Doesn't My Spring Security Configuration with Multiple HTTP Configurations Work?

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
    }
}

重點:

  • 照常設定驗證。
  • 指定多個的處理順序使用@Order進行設定。
  • 使用antMatcher根據URL限制特定配置的範圍

在前面的範例中,出現問題的原因是第一個帶有/antMatcher 的配置(匹配所有URL)覆蓋了第二個配置,導致第二個配置的URL 不受保護。透過將第一個配置的範圍限制為僅 /admin/,第二個配置的 URL 可以獲得適當的安全機制。

以上是為什麼我的具有多個 HTTP 配置的 Spring Security 配置不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn