@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); }
final AsyncServerExchangeHandler exchangeHandler = handlerFactory.create(request, context); if (exchangeHandler != null) { exchangeHandler.handleRequest(request, entityDetails, new ResponseChannel() {
final AsyncServerExchangeHandler exchangeHandler = handlerFactory.create(request, context); if (exchangeHandler != null) { exchangeHandler.handleRequest(request, entityDetails, new ResponseChannel() {
try { httpProcessor.process(request, requestEntityDetails, context); exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } catch (final HttpException ex) { if (!responseCommitted.get()) { final AsyncResponseProducer responseProducer = ServerSupport.handleException(ex); exchangeHandler = new ImmediateResponseExchangeHandler(responseProducer); exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } else { throw ex;
try { httpProcessor.process(request, requestEntityDetails, context); exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } catch (final HttpException ex) { if (!responseCommitted.get()) { final AsyncResponseProducer responseProducer = ServerSupport.handleException(ex); exchangeHandler = new ImmediateResponseExchangeHandler(responseProducer); exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } else { throw ex;
receivedRequest = request; exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } catch (final HttpException ex) { if (!responseCommitted.get()) { final AsyncResponseProducer responseProducer = ServerSupport.handleException(ex); exchangeHandler = new ImmediateResponseExchangeHandler(responseProducer); exchangeHandler.handleRequest(request, requestEntityDetails, responseChannel, context); } else { throw ex;