private AbstractHandler lookupHandlerForRequest(final SentiloRequest request)
      throws PlatformException {
    logger.debug("Looking handler for request {}", request.getUri());

    final AbstractHandler handler = handlerLocator.lookup(request);
    if (handler == null) {
      throw new PlatformException(
          HttpStatus.SC_NOT_FOUND, "handler not found to process request " + request.getUri());
    }
    return handler;
  }
  @Override
  public void handle(
      final HttpRequest httpRequest,
      final HttpResponse httpResponse,
      final HttpContext httpContext) {

    try {
      final SentiloRequest request = SentiloRequest.build(httpRequest);
      final SentiloResponse response = SentiloResponse.build(httpResponse);
      debug(request);
      request.checkCredentialIntegrity(authenticationService);

      final AbstractHandler handler = lookupHandlerForRequest(request);
      handler.manageRequest(request, response);

      prepareResponse(httpResponse, request.getContentType().toString());
    } catch (final PlatformException e) {
      prepareErrorResponse(httpResponse, e);
    }
    debug(httpResponse);
  }
 private void debug(final SentiloRequest request) {
   if (logger.isDebugEnabled()) {
     logger.debug("New http {} request: {}", request.getMethod(), request.getUri());
     logger.debug("Content-Type: {}", request.getContentType());
   }
 }