クラス 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
    • ネストされたクラスのサマリー

    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      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)
      インスタンスを作成します
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      booleanmatches​(javax.servlet.http.HttpServletRequest request)
      戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。
      voidsetIgnoredMediaTypes​(java.util.Set<org.springframework.http.MediaType> ignoredMediaTypes)
      ContentNegotiationStrategy から無視するように MediaType を設定します。
      voidsetUseEquals​(boolean useEquals)
      true に設定すると、正確な MediaType に一致し、そうでない場合は MediaType.isCompatibleWith(MediaType) を使用します。
      java.lang.StringtoString()
      • クラス 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
        戦略によって実装されたルールが提供されたリクエストと一致するかどうかを決定します。
        次で指定:
        インターフェース RequestMatchermatches 
        パラメーター:
        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.ObjecttoString