我打算使用 before 过滤器添加尾部斜杠以及使用 before 过滤器来处理某些端点上的身份验证。
这是我的路由代码:
// 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。然后调用身份验证过滤器,然后再次调用 addTrailingSlashes,将 localhost:4567/api/samples/10/ 作为请求端点,最后再次调用身份验证过滤器。
这是预期的行为吗?我想要发生的是 addTrailingSlashes 被调用一次添加斜杠,然后转发一次请求,以便身份验证过滤器只被调用一次。
任何想法将不胜感激。
谢谢,内森