Spring Security4はマッチャーをカスタマイズします

セルギイ

同じベースURL部分にマップされたローカルサービスがいくつかあります。ユーザー向けのこのサービスは閉じている必要がありますが、そのうちの1つはZooKeeperによって使用されており、開いている必要があります。だから私は設定しました:

@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

  @Override
  public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
        .withUser("user").password("us").roles("USER");
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/inner/service/**").hasRole("USER")
        .and().antMatcher("/inner/service/event/bus").csrf().disable().anonymous()
        .and().formLogin().and().logout().and().httpBasic();
  }
}

この構成は機能しません。イベントだけでなく、オープンサービスも行っています。各サービスはオープンです。構成を次のように変更した場合:

@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

  @Override
  public void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .inMemoryAuthentication()
        .withUser("user").password("us").roles("USER");
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/inner/service/**").hasRole("USER")
        .and().formLogin().and().logout().and().httpBasic();
  }
}

すべてのサービスはより閉鎖されています。

どこでも匿名リクエストを設定することは可能ですか?

"/**"

パスによる認証済みサービス

"/inner/service/**"

開いたもので

"/inner/service/event/bus"

PS Openサービスは、ZooKeeperの応答に使用されます。

セルギイ

解決策は次のとおりです。

  1. 他のパスに移動します(交差していないパスを提供するため)

    "/inner/service/event/bus"
    // for example
    "/inner/event/bus"
    
  2. httpセキュリティ構成の変更:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
    
        // to ignore csrf filter for zookeeper client api
        http.csrf().ignoringAntMatchers("/inner/event/bus");
    
        // configure the HttpSecurity
        http.antMatcher("/inner/service/**").authorizeRequests()
            // configure open resources. this configuration can be missed because of root level security (see line before)
            .antMatchers("/", "/index.html", "/inner/event/bus", "view.html").permitAll()
    
            // configure role for specified api
            .antMatchers("/inner/service/**").hasRole("USER")
    
            // to use default login and logout api
            .and().formLogin().and().logout().logoutSuccessUrl("/").and().httpBasic();
    }
    

このソリューションは、1つの命令を削除した場合にも機能します。

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/inner/event/bus");
        http.antMatcher("/inner/service/**").authorizeRequests()
            .antMatchers("/inner/service/**").hasRole("USER")
            .and().formLogin().and().logout().logoutSuccessUrl("/").and().httpBasic();
    }

そしてもう1つの重要なポイント(私は重要だと思います)。* .ymlファイルからすべてのセキュリティカスタマイズを削除しました

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Spring security4 / loginはフィルターを通過しません

分類Dev

Spring-bootLDAPはUserDetailsをカスタマイズします

分類Dev

Spring Securityスイッチのユーザーをカスタマイズするにはどうすればよいですか?

分類Dev

Spring Bootはhttpエラー応答をカスタマイズしますか?

分類Dev

パス変数とAntマッチャーを使用したSpring Securityカスタムメソッド

分類Dev

Spring Security4を使用したCAS4(java config)-チケットがSSOを許可した後、リダイレクトループでスタックする

分類Dev

Grails Spring Security Coreプラグインの資格情報チェックをカスタマイズするにはどうすればよいですか?

分類Dev

Spring Security permitAll()マッチャーは無視されます

分類Dev

Spring Securityを使用して403 Forbidden / Access Deniedページをカスタマイズする方法

分類Dev

Spring Securityはカスタムヘッダーを取得します

分類Dev

Springはカスタマイズされた検証メッセージに間違ったコード化を使用しています

分類Dev

Spring Batchメタテーブルをカスタマイズできますか?

分類Dev

信頼できるスペース向けにSpring Securityをカスタマイズする

分類Dev

spring-initializrの動作方法をカスタマイズしますか?

分類Dev

Spring BootでJSON応答をカスタマイズして、キー名を変更します

分類Dev

Spring Security 3-ユーザー名/パスワードのパラメーターをカスタマイズする方法は?

分類Dev

Springエラーメッセージのカスタマイズ

分類Dev

Spring MVC(Spring Bootではない)アプリケーションでJacksonをカスタマイズする方法

分類Dev

Spring-jms。rabbitmqのブローカーURLをカスタマイズする方法は?

分類Dev

spring aopはカスタマイズされたパラメータに値を転送できません

分類Dev

Spring SecurityOAuth2でTokenEndpointをカスタマイズする

分類Dev

Spring CloudStreamをより詳細にカスタマイズする

分類Dev

Spring WS WebServiceTemplate:応答のコンテンツへのアクセスまたはアンマーシャラーのカスタマイズ

分類Dev

SpringデータJPAはマルチスレッドで古い結果を取得します

分類Dev

Spring Bootで暗黙的に使用されているJackson JSONマッパーをカスタマイズする方法は?

分類Dev

Spring Reactive WebFlux-BadRequestエラーメッセージをカスタマイズする方法

分類Dev

Spring Bootはマイクロサービス専用ですか?モノリシックアーキテクチャにSpring Bootを使用できますか?

分類Dev

Spring統合でカスタマイズされたエラーチャネルにDestinationResolutionExceptionを引き起こすメッセージをルーティングする方法

分類Dev

リポジトリリソースのマルチセグメントパスを使用するようにSpring Data RESTをカスタマイズする方法

Related 関連記事

  1. 1

    Spring security4 / loginはフィルターを通過しません

  2. 2

    Spring-bootLDAPはUserDetailsをカスタマイズします

  3. 3

    Spring Securityスイッチのユーザーをカスタマイズするにはどうすればよいですか?

  4. 4

    Spring Bootはhttpエラー応答をカスタマイズしますか?

  5. 5

    パス変数とAntマッチャーを使用したSpring Securityカスタムメソッド

  6. 6

    Spring Security4を使用したCAS4(java config)-チケットがSSOを許可した後、リダイレクトループでスタックする

  7. 7

    Grails Spring Security Coreプラグインの資格情報チェックをカスタマイズするにはどうすればよいですか?

  8. 8

    Spring Security permitAll()マッチャーは無視されます

  9. 9

    Spring Securityを使用して403 Forbidden / Access Deniedページをカスタマイズする方法

  10. 10

    Spring Securityはカスタムヘッダーを取得します

  11. 11

    Springはカスタマイズされた検証メッセージに間違ったコード化を使用しています

  12. 12

    Spring Batchメタテーブルをカスタマイズできますか?

  13. 13

    信頼できるスペース向けにSpring Securityをカスタマイズする

  14. 14

    spring-initializrの動作方法をカスタマイズしますか?

  15. 15

    Spring BootでJSON応答をカスタマイズして、キー名を変更します

  16. 16

    Spring Security 3-ユーザー名/パスワードのパラメーターをカスタマイズする方法は?

  17. 17

    Springエラーメッセージのカスタマイズ

  18. 18

    Spring MVC(Spring Bootではない)アプリケーションでJacksonをカスタマイズする方法

  19. 19

    Spring-jms。rabbitmqのブローカーURLをカスタマイズする方法は?

  20. 20

    spring aopはカスタマイズされたパラメータに値を転送できません

  21. 21

    Spring SecurityOAuth2でTokenEndpointをカスタマイズする

  22. 22

    Spring CloudStreamをより詳細にカスタマイズする

  23. 23

    Spring WS WebServiceTemplate:応答のコンテンツへのアクセスまたはアンマーシャラーのカスタマイズ

  24. 24

    SpringデータJPAはマルチスレッドで古い結果を取得します

  25. 25

    Spring Bootで暗黙的に使用されているJackson JSONマッパーをカスタマイズする方法は?

  26. 26

    Spring Reactive WebFlux-BadRequestエラーメッセージをカスタマイズする方法

  27. 27

    Spring Bootはマイクロサービス専用ですか?モノリシックアーキテクチャにSpring Bootを使用できますか?

  28. 28

    Spring統合でカスタマイズされたエラーチャネルにDestinationResolutionExceptionを引き起こすメッセージをルーティングする方法

  29. 29

    リポジトリリソースのマルチセグメントパスを使用するようにSpring Data RESTをカスタマイズする方法

ホットタグ

アーカイブ