クラス HandlerMappingIntrospector

java.lang.ObjectSE
org.springframework.web.servlet.handler.HandlerMappingIntrospector
実装されたすべてのインターフェース:
AwareInitializingBeanApplicationContextAwareCorsConfigurationSourcePreFlightRequestHandler

@DeprecatedSE(since="7.0", forRemoval=true) public class HandlerMappingIntrospector extends ObjectSE implements CorsConfigurationSource, PreFlightRequestHandler, ApplicationContextAware, InitializingBean
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
PathPatternParser のみを使用することをお勧めします。allHandlerMappingsUsePathPatternParser() が true を返す場合は、それを使用すればハンドラーマッピングと一致させることができます。
特定のリクエストを処理する HandlerMapping から情報を取得するヘルパークラス。

次のメソッドを提供します。

これは主に、セキュリティ上の課題を回避するために、Spring Security がそのパターンマッチングを、特定のリクエストに対して Spring MVC で使用されるのと同じパターンマッチングと一致させるための SPI であることに注意してください。

このコンポーネントを使用すると、リクエストのマッピングによるパフォーマンスのオーバーヘッドが発生するため、リクエストごとに複数回繰り返すべきではありません。createCacheFilter() は結果をキャッシュするフィルターを公開します。Spring Security に依存するアプリケーションは、Spring Security がこのフィルターをデプロイするため、このフィルターをデプロイする必要はありません。ただし、このコンポーネントを使用する Spring Security の代わりに使用される他のカスタムセキュリティ層は、メソッドの Javadoc に記載されている要件に従ってキャッシュフィルターをデプロイする必要があります。

導入:
4.3.1
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • HandlerMappingIntrospector

      public HandlerMappingIntrospector()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
  • メソッドの詳細

    • setPatternCacheLimit

      public void setPatternCacheLimit(int patternCacheLimit)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      実行時に MatchableHandlerMapping.match(jakarta.servlet.http.HttpServletRequest, java.lang.String) に渡されてキャッシュされるセキュリティパターンの最大数に制限を設定します。

      デフォルトでは 2048 に設定されています。

      パラメーター:
      patternCacheLimit - 使用制限
      導入:
      6.2.8
    • getPatternCacheLimit

      public int getPatternCacheLimit()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      セキュリティパターンに設定された制限をキャッシュに返します。
      導入:
      6.2.8
    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      インターフェースからコピーされた説明: ApplicationContextAware
      このオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) および MessageSourceAware の後に呼び出されます(該当する場合)。

      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • afterPropertiesSet

      public void afterPropertiesSet()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • getHandlerMappings

      public ListSE<HandlerMapping> getHandlerMappings()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      構成または検出された HandlerMapping を返します。
    • allHandlerMappingsUsePathPatternParser

      public boolean allHandlerMappingsUsePathPatternParser()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      すべての HandlerMapping Bean が use parsed PathPatterns の場合は true を返し、そうでない場合は false を返します。
      導入:
      6.2
    • handlePreFlight

      public void handlePreFlight(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      リクエストに一致する HandlerMapping を見つけ、それが PreFlightRequestHandler として返すハンドラーを呼び出します。
      次で指定:
      インターフェース PreFlightRequestHandlerhandlePreFlight 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      例外:
      NoHandlerFoundException - リクエストに一致するハンドラーがない場合
      ExceptionSE
      導入:
      6.2
    • createCacheFilter

      public FilterEE createCacheFilter()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      FilterEE は、残りの チェーンに委譲する前に、リクエストの MatchableHandlerMapping および CorsConfiguration を積極的に検索し、結果をリクエスト属性にキャッシュし、チェーンが戻った後に復元します。

      注意 : Spring Security に依存するアプリケーションは、このコンポーネントを直接使用しないため、フィルターをデプロイせず、代わりに Spring Security にフィルターを許可する必要があります。Spring Security の代わりに HandlerMappingIntrospector に依存する他のカスタムセキュリティ層は、ルックアップが実行される他のフィルターよりも先にこのフィルターをデプロイする必要があり、またフィルターがすべてのディスパッチャー型を処理するように構成されていることを確認する必要があります。

      戻り値:
      使用するフィルターインスタンス
      導入:
      6.0.14
    • setCache

      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      ルックアップを実行し、HandlerMappingIntrospector.CachedResult をリクエスト属性として保存します。このメソッドは、その後の getMatchableHandlerMapping(HttpServletRequest) および getCorsConfiguration(HttpServletRequest) の呼び出しの前にフィルターから呼び出して、検索の繰り返しを避けることができます。
      パラメーター:
      request - 現在のリクエスト
      戻り値:
      以前の HandlerMappingIntrospector.CachedResult (親ディスパッチからのものがある場合)
      導入:
      6.0.14
    • resetCache

      public void resetCache(ServletRequestEE request, @Nullable HandlerMappingIntrospector.CachedResult cachedResult)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      以前の HandlerMappingIntrospector.CachedResult を復元します。このメソッドは、チェーンの残りの部分に委譲した後、フィルターから呼び出すことができます。
      導入:
      6.0.14
    • getMatchableHandlerMapping

      public @Nullable MatchableHandlerMapping getMatchableHandlerMapping(HttpServletRequestEE request) throws ExceptionSE
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      指定されたリクエストを処理する HandlerMapping を見つけ、パスマッチングに使用する MatchableHandlerMapping を返します。
      パラメーター:
      request - 現在のリクエスト
      戻り値:
      解決された MatchableHandlerMapping または null
      例外:
      IllegalStateExceptionSE - 一致する HandlerMapping が MatchableHandlerMapping のインスタンスでない場合
      ExceptionSE - HandlerMapping のいずれかで例外が発生した場合
    • getCorsConfiguration

      public @Nullable CorsConfiguration getCorsConfiguration(HttpServletRequestEE request)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      インターフェースからコピーされた説明: CorsConfigurationSource
      受信リクエストに基づいて CorsConfiguration を返します。
      次で指定:
      インターフェース CorsConfigurationSourcegetCorsConfiguration 
      戻り値:
      関連する CorsConfiguration、または存在しない場合は null