Spring Bootセキュリティ、特定のルートにのみ認証フィルターを適用

SheppardDigital

APIと管理インターフェースを1つのアプリケーションに含めるWebアプリケーションを構築しています。その結果、API用のトークンベースの認証と管理インターフェース用のフォームベースの認証の2種類の認証が必要になります。

APIトークンを認証するためにフィルターを適用することでほぼ機能していますが、フィルターはすべてのリクエストに対して実行されており、「/ api / **」に一致するパスでのみ実行する必要があります。

うまくいけば、セキュリティ構成から私が何をしようとしているのかが明確になりますが、残念ながら期待どおりに機能しません。

すべてのAPIリクエストは「/ api /」で始まり、すべての管理インターフェースリクエストは「/ admin /」で始まります。そのため、それぞれに異なるセキュリティルールを適用したいと考えていました。

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/api/account/login").permitAll();
        http.addFilterBefore(webServiceAuthenticationFilter, UsernamePasswordAuthenticationFilter.class).authorizeRequests().antMatchers("/api/**").hasAuthority("APIUSER");

        http.authorizeRequests().antMatchers("/admin/**").authenticated().and()
            .formLogin()
                .loginPage("/admin/account/login").permitAll()
                .passwordParameter("password")
                .usernameParameter("username")
                .failureUrl("/admin/account/login?error").permitAll()
                .defaultSuccessUrl("/admin/dashboard")
                .and()
            .logout()
                .logoutRequestMatcher(new AntPathRequestMatcher("/admin/account/logout"))
                .logoutSuccessUrl("/admin/account/login");

        http.exceptionHandling().accessDeniedPage("/admin/account/forbidden");
    }
アンドレアス・イェーグル

HttpSecurityで(!ではなく直接(またはより高度な場合HttpSecurityを使用して、URLに応じていくつかを構成する方法があります参照:https//docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/config/annotation/web/builders/HttpSecurity.html#antMatcher-java.lang.String-antMatcherrequestMatchersauthorizeRequests

これには、Springが指定されたURLと構成の順序に応じて最初の適切な構成を使用するように、WebSecurityConfigurerAdapter定義済み@Orderのでいくつかのを定義する必要があります。詳細については、http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#multiple-httpsecurityのドキュメントをご覧ください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring Cloud Zuul:特定のルートにのみフィルターを適用

分類Dev

JUnitテストの実行時にSpringセキュリティがカスタム認証フィルターを呼び出さない

分類Dev

特定のルートでSpringセキュリティを有効にする

分類Dev

Springのセキュリティ:適切な認証情報を入力した後、ターゲットページにアクセスできない

分類Dev

Spring-Bootのフィルターを特定のURLパターンに適用するための注釈

分類Dev

Spring Boot、セキュリティ、OAuth2:カスタムAuthorizationCodeResourceDetailsを使用することは可能ですか?認証サーバーはリダイレクトURLに特定のパラメーターを必要とします

分類Dev

Spring Bootで「デフォルトのセキュリティパスワードを使用する」を削除する

分類Dev

ユーザー名とパスワードだけでなく、3つのフィールドを使用したSpringセキュリティ認証

分類Dev

Spring Bootセキュリティ、JWT認証サーバー間

分類Dev

開発モードのSpringセキュリティ事前認証

分類Dev

Springセキュリティフィルターは正常に認証されますが、403応答を返します

分類Dev

Spring Boot2セキュリティの基本認証

分類Dev

Springセキュリティ:UserRole(ロール)のないユーザークラス。認証のみ承認は必要ありません

分類Dev

MVCインターセプターvs Springセキュリティフィルターvs他の何か...?

分類Dev

Springセキュリティでカスタム認証とロールを設定する

分類Dev

Spring RESTセキュリティ:特定のエンドポイントでのみ基本認証を有効にする

分類Dev

[ng \:cloak] [ng-cloak]セレクター(Spring Bootセキュリティチュートリアルに含まれています)の目的は何ですか?

分類Dev

Spring Boot 2.0がデフォルトのセキュリティを無効にする

分類Dev

Springセキュリティのデフォルト設定は常に401をスローします

分類Dev

Springセキュリティフィルターは認証プロバイダーを直接呼び出す必要がありますか?

分類Dev

Spring DataMongo-埋め込みドキュメントに一意の組み合わせフィールドを適用する

分類Dev

Springセキュリティ-CSRFのみ、認証は不要(XML構成を使用)

分類Dev

Spring MVC /セキュリティ非静的ロールベース認証

分類Dev

FreemarkerテンプレートでSpringのセキュリティロールとログに記録されたユーザー名を確認する

分類Dev

Spring Bootアプリケーションのデフォルトのセキュリティログインページを作成する

分類Dev

Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

分類Dev

Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

分類Dev

Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

分類Dev

Spring Security:サーブレットフィルター内の現在の認証済みユーザーにアクセスします

Related 関連記事

  1. 1

    Spring Cloud Zuul:特定のルートにのみフィルターを適用

  2. 2

    JUnitテストの実行時にSpringセキュリティがカスタム認証フィルターを呼び出さない

  3. 3

    特定のルートでSpringセキュリティを有効にする

  4. 4

    Springのセキュリティ:適切な認証情報を入力した後、ターゲットページにアクセスできない

  5. 5

    Spring-Bootのフィルターを特定のURLパターンに適用するための注釈

  6. 6

    Spring Boot、セキュリティ、OAuth2:カスタムAuthorizationCodeResourceDetailsを使用することは可能ですか?認証サーバーはリダイレクトURLに特定のパラメーターを必要とします

  7. 7

    Spring Bootで「デフォルトのセキュリティパスワードを使用する」を削除する

  8. 8

    ユーザー名とパスワードだけでなく、3つのフィールドを使用したSpringセキュリティ認証

  9. 9

    Spring Bootセキュリティ、JWT認証サーバー間

  10. 10

    開発モードのSpringセキュリティ事前認証

  11. 11

    Springセキュリティフィルターは正常に認証されますが、403応答を返します

  12. 12

    Spring Boot2セキュリティの基本認証

  13. 13

    Springセキュリティ:UserRole(ロール)のないユーザークラス。認証のみ承認は必要ありません

  14. 14

    MVCインターセプターvs Springセキュリティフィルターvs他の何か...?

  15. 15

    Springセキュリティでカスタム認証とロールを設定する

  16. 16

    Spring RESTセキュリティ:特定のエンドポイントでのみ基本認証を有効にする

  17. 17

    [ng \:cloak] [ng-cloak]セレクター(Spring Bootセキュリティチュートリアルに含まれています)の目的は何ですか?

  18. 18

    Spring Boot 2.0がデフォルトのセキュリティを無効にする

  19. 19

    Springセキュリティのデフォルト設定は常に401をスローします

  20. 20

    Springセキュリティフィルターは認証プロバイダーを直接呼び出す必要がありますか?

  21. 21

    Spring DataMongo-埋め込みドキュメントに一意の組み合わせフィールドを適用する

  22. 22

    Springセキュリティ-CSRFのみ、認証は不要(XML構成を使用)

  23. 23

    Spring MVC /セキュリティ非静的ロールベース認証

  24. 24

    FreemarkerテンプレートでSpringのセキュリティロールとログに記録されたユーザー名を確認する

  25. 25

    Spring Bootアプリケーションのデフォルトのセキュリティログインページを作成する

  26. 26

    Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

  27. 27

    Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

  28. 28

    Spring Boot REST API / Springセキュリティ:認証が失敗したときにカスタムメッセージを返す

  29. 29

    Spring Security:サーブレットフィルター内の現在の認証済みユーザーにアクセスします

ホットタグ

アーカイブ