クラス HandlerMappingIntrospector
- 実装されたすべてのインターフェース:
Aware
、InitializingBean
、ApplicationContextAware
、CorsConfigurationSource
、PreFlightRequestHandler
HandlerMapping
から情報を取得するヘルパークラス。次のメソッドを提供します。
getMatchableHandlerMapping(jakarta.servlet.http.HttpServletRequest)
—HandlerMapping
を取得して、リクエストの一致条件をチェックします。getCorsConfiguration(jakarta.servlet.http.HttpServletRequest)
— リクエストの CORS 設定を取得します。
これは主に、セキュリティ上の課題を回避するために、Spring Security がそのパターンマッチングを、特定のリクエストに対して Spring MVC で使用されるのと同じパターンマッチングと一致させるための SPI であることに注意してください。
このコンポーネントを使用すると、リクエストのマッピングによるパフォーマンスのオーバーヘッドが発生するため、リクエストごとに複数回繰り返すべきではありません。createCacheFilter()
は結果をキャッシュするフィルターを公開します。Spring Security に依存するアプリケーションは、Spring Security がこのフィルターをデプロイするため、このフィルターをデプロイする必要はありません。ただし、このコンポーネントを使用する Spring Security の代わりに使用される他のカスタムセキュリティ層は、メソッドの Javadoc に記載されている要件に従ってキャッシュフィルターをデプロイする必要があります。
- 導入:
- 4.3.1
- 作成者:
- Rossen Stoyanchev
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static final class
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。ディスパッチャー型と requestURI に一致する特定のリクエストのMatchableHandlerMapping
およびCorsConfiguration
のコンテナー。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。boolean
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。Filter
EE は、残りの チェーンに委譲する前に、リクエストのMatchableHandlerMapping
およびCorsConfiguration
を積極的に検索し、結果をリクエスト属性にキャッシュし、チェーンが戻った後に復元します。getCorsConfiguration
(HttpServletRequestEE request) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。受信リクエストに基づいてCorsConfiguration
を返します。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。構成または検出されたHandlerMapping
を返します。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。指定されたリクエストを処理するHandlerMapping
を見つけ、パスマッチングに使用するMatchableHandlerMapping
を返します。int
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。セキュリティパターンに設定された制限をキャッシュに返します。void
handlePreFlight
(HttpServletRequestEE request, HttpServletResponseEE response) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。リクエストに一致するHandlerMapping
を見つけ、それがPreFlightRequestHandler
として返すハンドラーを呼び出します。void
resetCache
(ServletRequestEE request, @Nullable HandlerMappingIntrospector.CachedResult cachedResult) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。以前のHandlerMappingIntrospector.CachedResult
を復元します。void
setApplicationContext
(ApplicationContext applicationContext) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。このオブジェクトが実行される ApplicationContext を設定します。setCache
(HttpServletRequestEE request) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。ルックアップを実行し、HandlerMappingIntrospector.CachedResult
をリクエスト属性として保存します。void
setPatternCacheLimit
(int patternCacheLimit) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。実行時にMatchableHandlerMapping.match(jakarta.servlet.http.HttpServletRequest, java.lang.String)
に渡されてキャッシュされるセキュリティパターンの最大数に制限を設定します。
コンストラクターの詳細
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
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。インターフェースからコピーされた説明:ApplicationContextAware
このオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
およびMessageSourceAware
の後に呼び出されます(該当する場合)。- 次で指定:
- インターフェース
ApplicationContextAware
のsetApplicationContext
- パラメーター:
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
afterPropertiesSet
public void afterPropertiesSet()非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
getHandlerMappings
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。構成または検出されたHandlerMapping
を返します。allHandlerMappingsUsePathPatternParser
public boolean allHandlerMappingsUsePathPatternParser()非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。- 導入:
- 6.2
handlePreFlight
public void handlePreFlight(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。リクエストに一致するHandlerMapping
を見つけ、それがPreFlightRequestHandler
として返すハンドラーを呼び出します。- 次で指定:
- インターフェース
PreFlightRequestHandler
のhandlePreFlight
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 例外:
NoHandlerFoundException
- リクエストに一致するハンドラーがない場合ExceptionSE
- 導入:
- 6.2
createCacheFilter
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。Filter
EE は、残りの チェーンに委譲する前に、リクエストの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
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。インターフェースからコピーされた説明:CorsConfigurationSource
受信リクエストに基づいてCorsConfiguration
を返します。- 次で指定:
- インターフェース
CorsConfigurationSource
のgetCorsConfiguration
- 戻り値:
- 関連する
CorsConfiguration
、または存在しない場合はnull
PathPatternParser
のみを使用することをお勧めします。allHandlerMappingsUsePathPatternParser()
が true を返す場合は、それを使用すればハンドラーマッピングと一致させることができます。