Spring Security:實現多個 HTTP 設定
Spring Security 為在 Web 應用程式中實現安全性提供了強大的機制。在某些情況下,有必要配置多個登入頁面並限制對不同群組 URL 的存取。然而,在嘗試實現此目標時遇到問題可能會令人沮喪。
問題:
多個 HTTP 配置無法運作。儘管嘗試為不同的入口點和保護區配置單獨的設置,但只有一組配置有效。
解決方案:
要解決此問題,必須了解 Spring Security 的設定順序以及如何套用 HTTP 設定。解決方案包括使用@Order 註解來指定HTTP 配置的處理順序:
@Configuration @Order(1) public static class ProviderSecurity extends WebSecurityConfigurerAdapter { // Configuration for admin/** } @Configuration @Order(2) public static class ConsumerSecurity extends WebSecurityConfigurerAdapter { // Configuration for consumer/** }
說明:
@Order 註解可讓您指定多個HTTP 配置的應用順序。透過設定 @Order(1) 和 @Order(2),可以確保 ProviderSecurity 配置在 ConsumerSecurity 配置之前處理。
HTTP 設定應用程式:
The第一個HTTP 設定ProviderSecurity 符合所有URL (/**),並且僅限制存取與/admin/** 相符的URL。預設允許所有其他 URL。
第二個 HTTP 設定 ConsumerSecurity 永遠不會套用,因為第一個設定符合所有 URL,且不專門限制對 /consumer/** 的存取。
透過調整配置順序,您可以確保以正確的順序套用這兩種配置,並強制執行所需的安全限制。
以上是如何在Spring Security中設定多個HTTP安全配置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!