クラス MediaTypeRequestMatcher
- java.lang.Object
-
- org.springframework.security.web.util.matcher.MediaTypeRequestMatcher
- 実装されたすべてのインターフェース:
RequestMatcher
public final class MediaTypeRequestMatcher extends java.lang.Object implements 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(java.util.Collection<org.springframework.http.MediaType> matchingMediaTypes)
インスタンスを作成しますMediaTypeRequestMatcher(org.springframework.http.MediaType... matchingMediaTypes)
インスタンスを作成しますMediaTypeRequestMatcher(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, java.util.Collection<org.springframework.http.MediaType> matchingMediaTypes)
インスタンスを作成しますMediaTypeRequestMatcher(org.springframework.web.accept.ContentNegotiationStrategy contentNegotiationStrategy, org.springframework.http.MediaType... matchingMediaTypes)
インスタンスを作成します
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 boolean
matches(javax.servlet.http.HttpServletRequest request)
戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。void
setIgnoredMediaTypes(java.util.Set<org.springframework.http.MediaType> ignoredMediaTypes)
ContentNegotiationStrategy
から無視するようにMediaType
を設定します。void
setUseEquals(boolean useEquals)
true に設定すると、正確なMediaType
に一致し、そうでない場合はMediaType.isCompatibleWith(MediaType)
を使用します。java.lang.String
toString()
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インターフェース org.springframework.security.web.util.matcher.RequestMatcher から継承されたメソッド
matcher
コンストラクターの詳細
MediaTypeRequestMatcher
public MediaTypeRequestMatcher(org.springframework.http.MediaType... matchingMediaTypes)
インスタンスを作成します- パラメーター:
matchingMediaTypes
- http リクエストを行うMediaType
。- 導入:
- 5.2
MediaTypeRequestMatcher
public MediaTypeRequestMatcher(java.util.Collection<org.springframework.http.MediaType> matchingMediaTypes)
インスタンスを作成します- パラメーター:
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, java.util.Collection<org.springframework.http.MediaType> matchingMediaTypes)
インスタンスを作成します- パラメーター:
contentNegotiationStrategy
- 使用するContentNegotiationStrategy
matchingMediaTypes
-RequestMatcher
を true に戻すMediaType
メソッドの詳細
matches
public boolean matches(javax.servlet.http.HttpServletRequest request)
インターフェースからコピーされた説明:RequestMatcher
戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。- 次で指定:
- インターフェース
RequestMatcher
のmatches
- パラメーター:
request
- 一致を確認するリクエスト- 戻り値:
- リクエストが一致する場合は true、そうでない場合は false
setUseEquals
public void setUseEquals(boolean useEquals)
true に設定すると、正確なMediaType
に一致し、そうでない場合はMediaType.isCompatibleWith(MediaType)
を使用します。- パラメーター:
useEquals
- 等しい比較を使用するかどうかを指定します。
setIgnoredMediaTypes
public void setIgnoredMediaTypes(java.util.Set<org.springframework.http.MediaType> ignoredMediaTypes)
ContentNegotiationStrategy
から無視するようにMediaType
を設定します。これは、たとえばMediaType.APPLICATION_JSON
で一致させたいがMediaType.ALL
を無視したい場合に便利です。- パラメーター:
ignoredMediaTypes
-ContentNegotiationStrategy
から無視するMediaType
toString
public java.lang.String toString()
- オーバーライド:
- クラス
java.lang.Object
のtoString