При каждом запросе от почтальона обработчик Vertx вызывался дважды.
У меня есть два обработчика, которые будут вызываться до того, как вызов придет к обработчику обработки запроса. Один для установки заголовка и один для аутентификации пользователя, но оба звонят дважды.
@Log4j2
public class BaseResponseHandler implements Handler<RoutingContext> {
@Override
public void handle(RoutingContext context) {
HttpServerResponse response = context.response();
log.info("Inside BaseResponse Handler!");
response.putHeader("Content-Security-Policy",
"script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'")
// do not allow proxies to cache the data
.putHeader("Cache-Control", "no-store, no-cache")
.putHeader("X-Content-Type-Options", "nosniff")
.putHeader("Strict-Transport-Security", "XYZ")
.putHeader("X-Download-Options", "XYZ")
.putHeader("X-XSS-Protection", "XYZ")
.putHeader("X-FRAME-OPTIONS", "XYZ");
response.setChunked(true);
context.next();
}
}
Фрагмент, который я имею в httpServerVerticle
router.route().order(1).handler(new BaseResponseHandler());
router.route().order(0).handler(new AuthenticationHandler()::authenticate);
В логах я получаю
10:09:54.214 [vert.x-eventloop-thread-4] [%vcl] DEBUG *.handlers.TokenHandler - User is Authenticated : io.vertx.ext.auth.jwt.impl.JWTUser@7855ebfa
10:09:54.215 [vert.x-eventloop-thread-4] [%vcl] INFO *.handlers.BaseResponseHandler - Inside BaseResponse Handler!
10:09:54.243 [vert.x-eventloop-thread-4] [%vcl] DEBUG *.handlers.TokenHandler - User is Authenticated : io.vertx.ext.auth.jwt.impl.JWTUser@5fb3053a
10:09:54.243 [vert.x-eventloop-thread-4] [%vcl] INFO *.handlers.BaseResponseHandler - Inside BaseResponse Handler!