クラス ResourceHandlerUtils
java.lang.ObjectSE
org.springframework.web.reactive.resource.ResourceHandlerUtils
ResourceWebHandler
と org.springframework.web.reactive.function.server
間で共通ロジックを共有するためのリソース処理ユーティリティメソッド。- 導入:
- 6.2
- 作成者:
- Rossen Stoyanchev
コンストラクターのサマリー
コンストラクター方法の概要
修飾子と型メソッド説明static void
assertResourceLocation
(Resource location) 指定された場所が null ではなく、そのパスがスラッシュで終了していることを確認します。static Resource
createRelativeResource
(Resource location, StringSE resourcePath) 指定されたResource
を基準としたリソースを作成し、UrlResource
のリソースパスもデコードします。static StringSE
initLocationPath
(StringSE path) 指定された静的リソースの場所のパスが末尾のスラッシュで終わっているかどうかを確認し、必要に応じて追加します。static boolean
isInvalidPath
(StringSE path) 無効なリソース入力パスをチェックし、以下を拒否します: "WEB-INF" または "META-INF" を含むパス、StringUtils.cleanPath(java.lang.String)
の呼び出し後に "../" を含むパス。static boolean
isResourceUnderLocation
(Resource location, Resource resource) リソースが指定された場所にあるかどうかを確認します。static StringSE
normalizeInputPath
(StringSE path) 指定されたリソースパスを正規化します。バックスラッシュをスラッシュに置き換えます。static boolean
指定された入力パスがisInvalidPath(String)
によって無効と判断されるかどうか。
コンストラクターの詳細
ResourceHandlerUtils
public ResourceHandlerUtils()
メソッドの詳細
assertResourceLocation
指定された場所が null ではなく、そのパスがスラッシュで終了していることを確認します。initLocationPath
指定された静的リソースの場所のパスが末尾のスラッシュで終わっているかどうかを確認し、必要に応じて追加します。- パラメーター:
path
- ロケーションパス- 戻り値:
- 使用する結果のパス
normalizeInputPath
指定されたリソースパスを次の内容に置き換えて正規化します。- バックスラッシュとスラッシュ。
- スラッシュが 1 つのスラッシュと重複しています。
- 先頭のスラッシュと制御文字(00-1F および 7F)の任意の組み合わせと単一の "/" または ""。たとえば、
" / // foo/bar"
は"/foo/bar"
になります。
shouldIgnoreInputPath
指定された入力パスがisInvalidPath(String)
によって無効かどうかが判定されます。パスもデコードされ、同じチェックが再度実行されます。isInvalidPath
無効なリソース入力パスをチェックし、以下を拒否します。- "WEB-INF" または "META-INF" を含むパス
StringUtils.cleanPath(java.lang.String)
の呼び出し後の "../" を含むパス。valid URL
を表すパス、または先頭のスラッシュが削除された後のパスを表すパス。
注意 : この方法では、先頭の重複する "/" または制御文字(空白など)が削除され、パスが単一の "/" で予測どおりに開始するか、パスが 1 つもないことが想定されています。
- パラメーター:
path
- 検証するパス- 戻り値:
- パスが無効な場合は
true
、そうでない場合はfalse
createRelativeResource
public static Resource createRelativeResource(Resource location, StringSE resourcePath) throws IOExceptionSE 指定されたResource
を基準としたリソースを作成し、UrlResource
のリソースパスもデコードします。isResourceUnderLocation
public static boolean isResourceUnderLocation(Resource location, Resource resource) throws IOExceptionSE リソースが指定された場所にあるかどうかを確認します。