@Override public List<X509Certificate> getClientCertificateChain() { return Optional.ofNullable(parent.context().get(ServletRequest.JDISC_REQUEST_X509CERT)) .map(X509Certificate[].class::cast) .map(Arrays::asList) .orElse(Collections.emptyList()); }
public static Optional<AccessLogEntry> getAccessLogEntry(final HttpRequest jdiscRequest) { final Map<String, Object> requestContextMap = jdiscRequest.context(); return getAccessLogEntry(requestContextMap); }
@Override public ContentChannel handleRequest(final Request request, final ResponseHandler handler) { Preconditions.checkArgument(request instanceof HttpRequest, "Expected HttpRequest, got " + request); final HttpRequest httpRequest = (HttpRequest) request; httpRequest.context().put(CONTEXT_KEY_ACCESS_LOG_ENTRY, accessLogEntry); final ResponseHandler accessLoggingResponseHandler = new AccessLoggingResponseHandler(httpRequest, handler, accessLogEntry); final ContentChannel requestContentChannel = delegate.handleRequest(request, accessLoggingResponseHandler); return requestContentChannel; }
public static HttpRequest newJDiscRequest(CurrentContainer container, HttpServletRequest servletRequest) { try { HttpRequest httpRequest = HttpRequest.newServerRequest( container, getUri(servletRequest), HttpRequest.Method.valueOf(servletRequest.getMethod()), HttpRequest.Version.fromString(servletRequest.getProtocol()), new InetSocketAddress(servletRequest.getRemoteAddr(), servletRequest.getRemotePort()), getConnection(servletRequest).getCreatedTimeStamp()); httpRequest.context().put(ServletRequest.JDISC_REQUEST_X509CERT, getCertChain(servletRequest)); return httpRequest; } catch (Utf8Appendable.NotUtf8Exception e) { throw createBadQueryException(e); } }
private void traceRequestAttributes(Query query) { int miminumTraceLevel = 7; if (query.getTraceLevel() >= 7) { query.trace("Request attributes: " + query.getHttpRequest().getJDiscRequest().context(), miminumTraceLevel); } }
@Override @SuppressWarnings("unchecked") public HttpResponse handle(HttpRequest request, ContentChannel channel) { com.yahoo.processing.Request processingRequest = new com.yahoo.processing.Request(); populate("", request.propertyMap(), processingRequest.properties()); populate("context", request.getJDiscRequest().context(), processingRequest.properties()); processingRequest.properties().set(Request.JDISC_REQUEST, request); FreezeListener freezeListener = new FreezeListener(processingRequest, renderers, defaultRenderer, channel, renderingExecutor); processingRequest.properties().set(freezeListenerKey, freezeListener); Chain<COMPONENT> chain = chainRegistry.getComponent(resolveChainId(processingRequest.properties())); if (chain == null) throw new IllegalArgumentException("Chain '" + processingRequest.properties().get("chain") + "' not found"); Execution execution = createExecution(chain, processingRequest); freezeListener.setExecution(execution); Response processingResponse = execution.process(processingRequest); return freezeListener.getHttpResponse(processingResponse); }