ホームページ >Java >&#&チュートリアル >Spring Security 6 の新しい requestMatchers

Spring Security 6 の新しい requestMatchers

WBOY
WBOYオリジナル
2024-07-19 12:18:31750ブラウズ

New requestMatchers in Spring Security 6

Spring Security 6 では、パスベースのアクセス制御を構成するために、非推奨の antMatchers、mvcMatchers、および regexMatchers メソッドが requestMatchers メソッドに置き換えられました。新しい requestMatchers に関する重要なポイントは次のとおりです:

authorizeHttpRequests で requestMatchers を使用する

HttpSecurity 構成の authorizeHttpRequests メソッドを使用すると、アクセス制御のためのきめ細かいリクエスト照合を構成できます。 requestMatchers メソッドを使用して、どのリクエストを許可または認証するかを指定できます。例:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http.authorizeHttpRequests(auth -> auth
        .requestMatchers("/greet").permitAll()
        .anyRequest().authenticated())
        .formLogin()
        .build();
}

この構成では、認証なしで /greet エンドポイントへのアクセスが許可されますが、他のすべてのリクエストには認証が必要です。

requestMatchers と securityMatchers

似たようなメソッドが 2 つあります: requestMatchers と securityMatchers。どちらも、クラスパス内の Spring MVC の存在に基づいて、最も適切な RequestMatcher 実装を選択します。

  • Spring MVC が存在する場合、MvcRequestMatcher を使用します。
  • Spring MVC が存在しない場合は、AntPathRequestMatcher にフォールバックします。

主な違いは、securityMatchers が WebSecurityCustomizer などの場所で使用されるのに対し、requestMatchers は authorizeHttpRequests で使用されることです。

適切なマッチャーの選択

requestMatchers メソッドを使用すると、AntPathRequestMatcher や RegexRequestMatcher などの特定のマッチャーに依存せずに、パターンやその他の基準に基づいてリクエストを照合できます。これにより、柔軟性が向上し、デフォルトが改善されます。

特定のマッチャーを使用するには、RequestMatcher 実装を requestMatchers メソッドに渡すことができます。

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http.authorizeHttpRequests(auth -> auth
        .requestMatchers(new AntPathRequestMatcher("/greet")).permitAll()
        .anyRequest().authenticated())
        .formLogin()
        .build();
}

要約すると、Spring Security 6 の新しい requestMatchers メソッドは、アプリケーションの依存関係に基づいて最も適切な RequestMatcher 実装を選択し、パスベースのアクセス制御を構成するためのより柔軟で安全な方法を提供します。

以上がSpring Security 6 の新しい requestMatchersの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。