@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()); }
/** * Return the HTTP method (GET, POST...) of the incoming request. * * @return a Method instance matching the HTTP method of the request */ public Method getMethod() { return parentRequest.getMethod(); }
private HttpRequest(Request parent, URI uri, Method method, Version version) { super(parent, uri); try { this.method = method; this.version = version; this.remoteAddress = null; this.parameters.putAll(getUriQueryParameters(uri)); this.connectedAt = creationTime(TimeUnit.MILLISECONDS); } catch (RuntimeException e) { release(); throw e; } }
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); } }
public static HttpRequest newServerRequest(CurrentContainer container, URI uri) { return newServerRequest(container, uri, Method.GET); }
@Override public String getParameter(String name) { if(parent.parameters().containsKey(name)) { return parent.parameters().get(name).get(0); } else { return null; } }
public static HttpRequest newClientRequest(Request parent, URI uri) { return newClientRequest(parent, uri, Method.GET); }
@Override public final void handleRequest(Request request, BufferedContentChannel requestContent, ResponseHandler responseHandler) { if (log.isLoggable(LogLevel.DEBUG)) { log.log(LogLevel.DEBUG, "In " + this.getClass() + ".handleRequest()"); } com.yahoo.jdisc.http.HttpRequest jdiscRequest = asHttpRequest(request); HttpRequest httpRequest = new HttpRequest(jdiscRequest, new UnsafeContentInputStream(requestContent.toReadable())); LazyContentChannel channel = null; try { channel = new LazyContentChannel(httpRequest, responseHandler, metric, log); HttpResponse httpResponse = handle(httpRequest, channel); channel.setHttpResponse(httpResponse); // may or may not have already been done render(httpRequest, httpResponse, channel, jdiscRequest.creationTime(TimeUnit.MILLISECONDS)); } catch (Exception e) { metric.add(RENDERING_ERRORS, 1, null); log.log(LogLevel.ERROR, "Uncaught exception handling request", e); if (channel != null) { channel.setHttpResponse(null); channel.close(null); } } catch (Error e) { // To make absolutely sure the VM exits on Error. com.yahoo.protect.Process.logAndDie("java.lang.Error handling request", e); } }
public static HttpRequest newServerRequest(CurrentContainer container, URI uri, Method method) { return newServerRequest(container, uri, method, Version.HTTP_1_1); }
protected HttpRequest(CurrentContainer container, URI uri, Method method, Version version, SocketAddress remoteAddress, Long connectedAtMillis) { super(container, uri); try { this.method = method; this.version = version; this.remoteAddress = remoteAddress; this.parameters.putAll(getUriQueryParameters(uri)); if (connectedAtMillis != null) { this.connectedAt = connectedAtMillis; } else { this.connectedAt = creationTime(TimeUnit.MILLISECONDS); } } catch (RuntimeException e) { release(); throw e; } }
@Override public Enumeration<String> getParameterNames() { return Collections.enumeration(parent.parameters().keySet()); }
public static HttpRequest newClientRequest(Request parent, URI uri, Method method) { return newClientRequest(parent, uri, method, Version.HTTP_1_1); }
@Override public void removeHeaders(String name) { parent.headers().remove(name); }
public static HttpRequest newServerRequest(CurrentContainer container, URI uri, Method method, Version version) { return newServerRequest(container, uri, method, version, null); }
public RequestViewImpl(Request request) { this.request = request; method = request instanceof HttpRequest ? Optional.of(((HttpRequest) request).getMethod()): Optional.empty(); }
public static Optional<AccessLogEntry> getAccessLogEntry(final HttpRequest jdiscRequest) { final Map<String, Object> requestContextMap = jdiscRequest.context(); return getAccessLogEntry(requestContextMap); }
private static void setProperties(com.yahoo.jdisc.http.HttpRequest clientRequest, Map<String, String> properties) { if (properties == null) return; for (Map.Entry<String, String> entry : properties.entrySet()) { clientRequest.parameters().put(entry.getKey(), wrap(entry.getValue())); } }
/** * Start of API for synchronous HTTP request dispatch. Not yet ready for * use. * * @return a new client request */ public HttpRequest createClientRequest() { ensureJdiscParent(); requireUri(); com.yahoo.jdisc.http.HttpRequest clientRequest; if (method == null) { clientRequest = com.yahoo.jdisc.http.HttpRequest .newClientRequest(jdiscRequest, uri); } else { if (version == null) { clientRequest = com.yahoo.jdisc.http.HttpRequest .newClientRequest(jdiscRequest, uri, method); } else { clientRequest = com.yahoo.jdisc.http.HttpRequest .newClientRequest(jdiscRequest, uri, method, version); } } setParameters(clientRequest); // TODO set requestData sanely return new HttpRequest(clientRequest, requestData, properties); }
@Override public String getHeader(String name) { List<String> values = parent.headers().get(name); if (values == null || values.isEmpty()) { return null; } return values.get(values.size() - 1); }