クラス MediaTypeRequestMatcher
java.lang.ObjectSE
org.springframework.security.web.util.matcher.MediaTypeRequestMatcher
- 実装されたすべてのインターフェース:
RequestMatcher
ContentNegotiationStrategy
から解決された MediaType
に基づいて、一致する HttpServletRequest
を許可します。デフォルトでは、照合プロセスは次を実行します。ContentNegotiationStrategy
は、現在のリクエストのMediaType
を解決します- コンストラクターに渡された各 matchingMediaTypes は、
ContentNegotiationStrategy
から解決されたMediaType
インスタンスと比較されます。 - matchingMediaTypes の 1 つが
ContentNegotiationStrategy
から返された解決されたMediaType
の 1 つと互換性がある場合、true を返します。
GET / Accept: application/json ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); assert matcher.matches(request) == true // returns true次も true を返します
GET / Accept: */* ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); assert matcher.matches(request) == true // returns true
メディア型を無視する
特定の種類のメディア型を無視したい場合があります。例: "application/json" で一致させたいが、"*/" は無視する場合があります。Web ブラウザーによって送信されます。GET / Accept: */* ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); matcher.setIgnoredMediaTypes(Collections.singleton(MediaType.ALL)); assert matcher.matches(request) == false // returns false
GET / Accept: application/json ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); matcher.setIgnoredMediaTypes(Collections.singleton(MediaType.ALL)); assert matcher.matches(request) == true // returns true
正確なメディア型の比較
デフォルトでは、ContentNegotiationStrategy
によって検出された MediaType
が matchingMediaTypes 上の MediaType.isCompatibleWith(MediaType)
に対して true を返す限り、一致の結果は true になります。ただし、完全一致を実行したい場合もあります。これは次の例で実行できます。GET / Accept: application/json ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); matcher.setUseEquals(true); assert matcher.matches(request) == true // returns true
GET / Accept: application/* ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); matcher.setUseEquals(true); assert matcher.matches(request) == false // returns false
GET / Accept: */* ContentNegotiationStrategy negotiationStrategy = new HeaderContentNegotiationStrategy() MediaTypeRequestMatcher matcher = new MediaTypeRequestMatcher(negotiationStrategy, MediaType.APPLICATION_JSON); matcher.setUseEquals(true); assert matcher.matches(request) == false // returns false
- 導入:
- 3.2
ネストされたクラスのサマリー
インターフェース org.springframework.security.web.util.matcher.RequestMatcher から継承されたネストクラス / インターフェース
RequestMatcher.MatchResult
コンストラクターのサマリー
コンストラクターコンストラクター説明MediaTypeRequestMatcher
(CollectionSE<org.springframework.http.MediaType> matchingMediaTypes) インスタンスを作成しますMediaTypeRequestMatcher
(org.springframework.http.MediaType... matchingMediaTypes) インスタンスを作成しますMediaTypeRequestMatcher
(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, CollectionSE<org.springframework.http.MediaType> matchingMediaTypes) インスタンスを作成しますMediaTypeRequestMatcher
(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, org.springframework.http.MediaType... matchingMediaTypes) インスタンスを作成しますメソッドのサマリー
修飾子と型メソッド説明boolean
matches
(jakarta.servlet.http.HttpServletRequest request) 戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。void
setIgnoredMediaTypes
(SetSE<org.springframework.http.MediaType> ignoredMediaTypes) ContentNegotiationStrategy
から無視するようにMediaType
を設定します。void
setUseEquals
(boolean useEquals) true に設定すると、正確なMediaType
に一致し、そうでない場合はMediaType.isCompatibleWith(MediaType)
を使用します。toString()
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.security.web.util.matcher.RequestMatcher から継承されたメソッド
matcher
コンストラクターの詳細
MediaTypeRequestMatcher
public MediaTypeRequestMatcher(org.springframework.http.MediaType... matchingMediaTypes) インスタンスを作成します- パラメーター:
matchingMediaTypes
- http リクエストを行うMediaType
。- 導入:
- 5.2
MediaTypeRequestMatcher
インスタンスを作成します- パラメーター:
matchingMediaTypes
- http リクエストを行うMediaType
。- 導入:
- 5.2
MediaTypeRequestMatcher
public MediaTypeRequestMatcher(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, org.springframework.http.MediaType... matchingMediaTypes) インスタンスを作成します- パラメーター:
contentNegotiationStrategy
- 使用するContentNegotiationStrategy
matchingMediaTypes
-RequestMatcher
を true に戻すMediaType
MediaTypeRequestMatcher
public MediaTypeRequestMatcher(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, CollectionSE<org.springframework.http.MediaType> matchingMediaTypes) インスタンスを作成します- パラメーター:
contentNegotiationStrategy
- 使用するContentNegotiationStrategy
matchingMediaTypes
-RequestMatcher
を true に戻すMediaType
メソッドの詳細
matches
public boolean matches(jakarta.servlet.http.HttpServletRequest request) インターフェースからコピーされた説明:RequestMatcher
戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。- 次で指定:
- インターフェース
RequestMatcher
のmatches
- パラメーター:
request
- 一致を確認するリクエスト- 戻り値:
- リクエストが一致する場合は true、そうでない場合は false
setUseEquals
public void setUseEquals(boolean useEquals) true に設定すると、正確なMediaType
に一致し、そうでない場合はMediaType.isCompatibleWith(MediaType)
を使用します。- パラメーター:
useEquals
- 等しい比較を使用するかどうかを指定します。
setIgnoredMediaTypes
ContentNegotiationStrategy
から無視するようにMediaType
を設定します。これは、たとえばMediaType.APPLICATION_JSON
で一致させたいがMediaType.ALL
を無視したい場合に便利です。- パラメーター:
ignoredMediaTypes
-ContentNegotiationStrategy
から無視するMediaType
toString