特定のエンドポイントでの認証を処理する前にフィルターを使用するだけでなく、末尾のスラッシュを追加する前にフィルターを使用することを結び付けています。
これが私のルーティングコードです:
// Add filter to all requests which adds a trailing slash if it is missing //
before("*", Filters.addTrailingSlashes);
path("/api", () -> {
// Authentication Intercept //
before("/*", AuthenticationIntercept.authenticationIntercept);
// Sampling Endpoints //
get(Path.Web.SAMPLES_FETCH_LATEST, SamplingController.fetchLatestSamples, new JsonTransformer());
get(Path.Web.SAMPLES_FETCH_FOR_DEVICE, SamplingController.getLatestSamplesForDevice, new JsonTransformer());
});
次に、次のエンドポイントにヒットします。
ローカルホスト:4567/api/samples/10
addTrailingSlashes が最初に呼び出されます。次に、認証フィルターが呼び出され、今度はリクエスト エンドポイントとして localhost:4567/api/samples/10/ を使用して addTrailingSlashes が再度呼び出され、最後に認証フィルターが再度呼び出されます。
これは予想される動作ですか?私がしたいのは、 addTrailingSlashes が一度呼び出されてスラッシュが追加され、認証フィルターが一度だけ呼び出されるようにリクエストを一度転送することです。
どんなアイデアでも大歓迎です。
ありがとう、ネイサン