特定のURIでのみジャージー要求フィルター

KingTravisG:

を使用してサービスに送信されるリクエストに対して検証を実行しようとしていますContainerRequestFilterすべてが正常に動作していますが、1つの問題があります-一部のフィルターはフィルターに適用されない場合でも、すべての要求がフィルターを通過します(1つのフィルターはResourceOneでのみ検証され、別のフィルターはResourceTwoでのみ検証されます)。

特定の条件下でリクエストに対してのみ呼び出されるようにフィルターを設定する方法はありますか?

それはブロッカーや障害ではありませんが、この種の動作を停止できると便利です:)

ピンク:

あなたはJersey 2.x(JAX-RS 2.0 APIの実装)を使用していると思います。

あなたの目標を達成するには、2つの方法があります。

1.名前バインディングを使用します。


1.1 @NameBindingでアノテーションが付けられたカスタムアノテーションを作成します。

@NameBinding
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationForResourceOne {}

1.2。あなたの注釈でフィルターを作成します:

@Provider
@AnnotationForResourceOne
public class ResourceOneFilter implements ContainerRequestFilter {
...
}

1.3。作成したフィルターを選択したリソースメソッドにバインドします。

@Path("/resources")
public class Resources {
    @GET
    @Path("/resourceOne")
    @AnnotationForResourceOne
    public String getResourceOne() {...}
}

2. DynamicFeatureを使用します。


2.1。フィルターを作成:

public class ResourceOneFilter implements ContainerRequestFilter {
...
}

2.2。javax.ws.rs.container.DynamicFeatureインターフェースを実装します。

@Provider
public class MaxAgeFeature implements DynamicFeature {
    public void configure(ResourceInfo ri, FeatureContext ctx) {
        if(resourceShouldBeFiltered(ri)){
            ResourceOneFilter filter = new ResourceOneFilter();
            ctx.register(filter);
        }
    }
}

このシナリオでは:

  • フィルターは注釈付きではありません@Provider
  • configure(...) methodは、すべてのリソースメソッドに対して呼び出されます。
  • ctx.register(filter) フィルターをリソースメソッドにバインドします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

サーブレットフィルタとジャージーフィルタの違いは何ですか?

特定のディレクトリでレンジャーファイルマネージャーを開く

ジャクソンのみのインターフェースフィールドの逆シリアル化

ジャージー1.11フィルターでカスタム応答と中止要求を追加する方法

ジャクソン-特定のフィールドのみをオーバーライドするカスタムシリアライザー

特定のキーでオブジェクトの配列をフィルター

ストアドプロシージャの更新-特定のフィールドのみを更新し、他のフィールドはそのままにします

ジャージーフィルターとは何ですか?

別のフィルターがアクティブな場合にのみメジャーを表示する

参照日列によるメジャーのフィルター

オブジェクトのJavascript配列-特定のキーの一意性でフィルタリングし、特定のキーのみを保持します

ジャージーフィルターがトリガーされないのはなぜですか?

ジャージーの単純なフィルターが機能しないのはなぜですか?

TableauのフィルタリングTableauでのメジャー名

dplyrの特定の組み合わせでフィルター

特定のオブジェクトのフィルター配列

特定のオブジェクトのフィルター配列

ジャージー2.xではフィルターの実装が機能しませんか?

Bambooの特定のステージで特定のプロパティファイルを読み取る

AngularJSでOR演算子を実行して、オブジェクト内の特定のフィールドのみをフィルタリングする

PowerBIでメジャーのフィルタリングを制限する

JWTカスタムフィルターの認証マネージャー

特定のフィールドのジャクソンJSONカスタムシリアル化

ジャクソン、特定のフィールド名のカスタム逆シリアル化

特定のマージ日でGitHubPRをフィルタリングする方法は?

PowerBIDAXメジャー-列に特定の値が必要な行をフィルター処理する

MongoDb:日付フィルターのみでオブジェクトを検索

clojureでのレイジーフィルターの実装

ページフィルターでの配列変数の使用

TOP 一覧

  1. 1

    PictureBoxで画像のブレンドを無効にする

  2. 2

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  3. 3

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  4. 4

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  5. 5

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  9. 9

    ZScalerと証明書の問題により、Dockerを使用できません

  10. 10

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  11. 11

    テキストフィールドの値に基づいて UIslider を移動します

  12. 12

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  13. 13

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  14. 14

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  15. 15

    CSSはアニメーションで変換および回転します

  16. 16

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  17. 17

    Chromeウェブアプリのウェブビューの高さの問題

  18. 18

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  19. 19

    amCharts 4で積み上げ棒グラフの輪郭を描く方法は?

  20. 20

    Officeアドインを使用してOutlookの連絡先のリストにプログラムでアクセスすることは可能ですか?

  21. 21

    Reactでclsxを使用する方法

ホットタグ

アーカイブ