クラス PathPatternRequestMatcher.Builder

java.lang.ObjectSE
org.springframework.security.web.servlet.util.matcher.PathPatternRequestMatcher.Builder
含まれているクラス:
PathPatternRequestMatcher

public static final class PathPatternRequestMatcher.Builder extends ObjectSE
PathPatternRequestMatcher を作成する目的でリクエストのさまざまな要素を指定するためのビルダー。

/app がコンテキストパスである /app/servlet/my/resource/** のようなリクエスト URI に一致させるには、PathPatternRequestMatcher.withDefaults().matcher("/servlet/my/resource/**") を実行します。

共通のパスプレフィックスを持つパスが多数ある場合は、次のように basePath を使用して繰り返しを減らすことができます。

     PathPatternRequestMatcher.Builder mvc = withDefaults().basePath("/mvc");
     http
         .authorizeHttpRequests((authorize) -> authorize
              .requestMatchers(mvc.matcher("/user/**")).hasAuthority("user")
              .requestMatchers(mvc.matcher("/admin/**")).hasAuthority("admin")
         )
             ...
 
  • メソッドの詳細

    • basePath

      public PathPatternRequestMatcher.Builder basePath(StringSE basePath)
      この basePath で始まる一致リクエスト。

      プレフィックスは /my/prefix の形式で、スラッシュで始まり、スラッシュで終わってはならず、ワイルドカードを含んではなりません。

      パラメーター:
      basePath - パスプレフィックス
      戻り値:
      より多くの構成のための PathPatternRequestMatcher.Builder
    • matcher

      public PathPatternRequestMatcher matcher(StringSE path)
      このパスパターンを持つリクエストを一致させます。

      HTTP method が null の場合、マッチャーは HTTP メソッドを考慮しません。

      パスパターンは常にスラッシュで始まり、プレースホルダーを含む場合があります。また、/** を続けて、特定のパスにあるすべての URI を表すこともできます。

      これらは、サーブレットパスプレフィックスを基準にして指定する必要があります (つまり、パターンを指定する際にコンテキストパスとサーブレットパスプレフィックスを除外する必要があります)。

      以下は有効なパターンとその意味です

      • /path - `/path` のみに完全に一致
      • /path/** - `/path` とその子孫に一致する
      • /path/{value}/** - `/path/subdirectory` とその子孫に一致し、RequestAuthorizationContext.getVariables() のサブディレクトリの値を取得します。

      より包括的なリストについては、PathPattern を参照してください。

      パラメーター:
      path - 一致するパスパターン
      戻り値:
      より多くの構成のための PathPatternRequestMatcher.Builder
    • matcher

      public PathPatternRequestMatcher matcher(@Nullable org.springframework.http.HttpMethod method, StringSE path)
      この HttpMethod とパスパターンを持つリクエストを一致させます。

      HTTP method が null の場合、マッチャーは HTTP メソッドを考慮しません。

      パスパターンは常にスラッシュで始まり、プレースホルダーを含む場合があります。また、/** を続けて、特定のパスにあるすべての URI を表すこともできます。

      これらは、サーブレットパスプレフィックスを基準にして指定する必要があります (つまり、パターンを指定する際にコンテキストパスとサーブレットパスプレフィックスを除外する必要があります)。

      以下は有効なパターンとその意味です

      • /path - `/path` のみに完全に一致
      • /path/** - `/path` とその子孫に一致する
      • /path/{value}/** - `/path/subdirectory` とその子孫に一致し、RequestAuthorizationContext.getVariables() のサブディレクトリの値を取得します。

      より包括的なリストについては、PathPattern を参照してください。

      パラメーター:
      method - 一致する HttpMethod。null の可能性がある
      path - 一致するパスパターン
      戻り値:
      より多くの構成のための PathPatternRequestMatcher.Builder