@Override public void handleRequest( final HttpRequest request, final EntityDetails entityDetails, final ResponseChannel responseChannel, final HttpContext context) throws HttpException, IOException { responseProducer.sendResponse(responseChannel, context); }
@Override public void handleRequest( final HttpRequest request, final EntityDetails entityDetails, final ResponseChannel responseChannel, final HttpContext context) throws HttpException, IOException { responseProducer.sendResponse(responseChannel, context); }
@Override public void submitResponse( final AsyncResponseProducer producer, final HttpContext httpContext) throws HttpException, IOException { if (responseProducerRef.compareAndSet(null, producer)) { producer.sendResponse(responseChannel, httpContext); } }
@Override public void submitResponse( final AsyncResponseProducer producer, final HttpContext httpContext) throws HttpException, IOException { if (responseProducerRef.compareAndSet(null, producer)) { producer.sendResponse(responseChannel, httpContext); } }
@Override public void handleRequest( final HttpRequest request, final EntityDetails entityDetails, final ResponseChannel responseChannel, final HttpContext context) throws HttpException, IOException { final Header h = request.getFirstHeader(HttpHeaders.AUTHORIZATION); final String challengeResponse = h != null ? authTokenExtractor.extract(h.getValue()) : null; final URIAuthority authority = request.getAuthority(); final String requestUri = request.getRequestUri(); final boolean authenticated = authenticator.authenticate(authority, requestUri, challengeResponse); final Header expect = request.getFirstHeader(HttpHeaders.EXPECT); final boolean expectContinue = expect != null && "100-continue".equalsIgnoreCase(expect.getValue()); if (authenticated) { if (expectContinue) { responseChannel.sendInformation(new BasicClassicHttpResponse(HttpStatus.SC_CONTINUE), context); } exchangeHandler.handleRequest(request, entityDetails, responseChannel, context); } else { final HttpResponse unauthorized = new BasicHttpResponse(HttpStatus.SC_UNAUTHORIZED); final String realm = authenticator.getRealm(authority, requestUri); unauthorized.addHeader(HttpHeaders.WWW_AUTHENTICATE, "Basic realm=\"" + realm + "\""); customizeUnauthorizedResponse(unauthorized); final AsyncResponseProducer responseProducer = new BasicResponseProducer( unauthorized, new BasicAsyncEntityProducer("Unauthorized", ContentType.TEXT_PLAIN)); responseProducerRef.set(responseProducer); responseProducer.sendResponse(responseChannel, context); } }
@Override public final void handleRequest( final HttpRequest request, final EntityDetails entityDetails, final ResponseChannel responseChannel, final HttpContext context) throws HttpException, IOException { if (entityDetails != null) { final Header h = request.getFirstHeader(HttpHeaders.EXPECT); if (h != null && "100-continue".equalsIgnoreCase(h.getValue())) { final AsyncResponseProducer producer = verify(request, context); if (producer != null) { responseProducerRef.set(producer); producer.sendResponse(responseChannel, context); return; } responseChannel.sendInformation(new BasicHttpResponse(HttpStatus.SC_CONTINUE), context); } } handler.handleRequest(request, entityDetails, responseChannel, context); }
@Override public final void handleRequest( final HttpRequest request, final EntityDetails entityDetails, final ResponseChannel responseChannel, final HttpContext context) throws HttpException, IOException { if (entityDetails != null) { final Header h = request.getFirstHeader(HttpHeaders.EXPECT); if (h != null && "100-continue".equalsIgnoreCase(h.getValue())) { final AsyncResponseProducer producer = verify(request, context); if (producer != null) { responseProducerRef.set(producer); producer.sendResponse(responseChannel, context); return; } responseChannel.sendInformation(new BasicHttpResponse(HttpStatus.SC_CONTINUE), context); } } handler.handleRequest(request, entityDetails, responseChannel, context); }