docs: @Override
      public void handleRequest(final HttpServerExchange exchange) throws Exception {
          if(exchange.isInIoThread()) {
              exchange.dispatch(this);
              return;
          }
          SecurityContext context = exchange.getSecurityContext();
          if (context.authenticate()) {
              if(!exchange.isComplete()) {
                 next.handleRequest(exchange);
              }
          } else {
              if(exchange.getStatusCode() >= StatusCodes.BAD_REQUEST && !exchange.isComplete()) {
                  ServletRequestContext src = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY);
                  src.getOriginalResponse().sendError(exchange.getStatusCode());
              } else {
                  exchange.endExchange();
              }
          }
      }