ホームページ > Java > &#&チュートリアル > Spring Security でさまざまなアプリケーションセクションに複数の HTTP セキュリティ構成を構成する方法は?

Spring Security でさまざまなアプリケーションセクションに複数の HTTP セキュリティ構成を構成する方法は?

DDD
リリース: 2024-12-29 18:09:17
オリジナル
456 人が閲覧しました

How to Configure Multiple HTTP Security Configurations in Spring Security for Different Application Sections?

Spring Security での複数の HTTP セキュリティ構成

Spring Security では、異なるログイン ページとセキュリティ構成が必要になる状況が発生する場合があります。アプリケーションのセクション。これを実現するには、MultipleHttpSecurityConfig アプローチを利用できます。

特定のインスタンスでは、@EnableWebSecurity アノテーションが付けられた親クラス内で 2 つのネストされたクラス ProviderSecurity と ConsumerSecurity を構成しました。 /admin/** のセキュリティ構成は期待どおりに機能していますが、「/consumer/**」によって制限されているページが意図したとおりにセキュリティ保護されていないことがわかりました。

分析

この問題は、両方の構成がデフォルトですべてのリクエストを許可しているという事実から発生します。これにより、定義されたセキュリティ制限に関係なく、すべてのページへのアクセスが許可されます。これを修正するには、特定の URL またはリクエスト パターンへのアクセスを明示的に制限する必要があります。

解決策

これを解決するには、次の手順を実行します。

  1. ProviderSecurity 構成の antMatcher メソッドを利用して、URL パターンを定義します。適用対象:

    @Configuration
    @Order(1)
    public static class ProviderSecurity extends WebSecurityConfigurerAdapter{
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/", "/home").permitAll()
                    .antMatchers("/admin/login").permitAll()
                    .anyRequest().hasRole("BASE_USER")  // Restrict all other URLs
                    .and()
                ...
    }
    ログイン後にコピー
  2. 同様に、ConsumerSecurity 構成で、保護する必要がある URL パターンを指定します:

    @Configuration
    @Order(2)
    public static class ConsumerSecurity extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/consumer/login").permitAll()
                    .anyRequest().hasRole("BASE_USER")  // Restrict all other URLs
                    .and()
                ...
    }
    ログイン後にコピー

制限することで特定の URL パターンにアクセスすると、アプリケーションに意図したセキュリティを適用できます。

以上がSpring Security でさまざまなアプリケーションセクションに複数の HTTP セキュリティ構成を構成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート