@Override public HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) throws Exception { return HttpResponse.from(AuthorizerUtil.authorize(authorizer, ctx, req).handleAsync((result, cause) -> { try { if (cause == null) { if (result != null) { return result ? successHandler.authSucceeded(delegate(), ctx, req) : failureHandler.authFailed(delegate(), ctx, req, null); } cause = AuthorizerUtil.newNullResultException(authorizer); } return failureHandler.authFailed(delegate(), ctx, req, cause); } catch (Exception e) { return Exceptions.throwUnsafely(e); } }, ctx.contextAwareEventLoop())); } }