private URI getBaseUri(final HttpExchange exchange, final String decodedBasePath, final String scheme) { final URI baseUri; try { final List<String> hostHeader = exchange.getRequestHeaders().get("Host"); if (hostHeader != null) { baseUri = new URI(scheme + "://" + hostHeader.get(0) + decodedBasePath); } else { final InetSocketAddress addr = exchange.getLocalAddress(); baseUri = new URI(scheme, null, addr.getHostName(), addr.getPort(), decodedBasePath, null, null); } } catch (final URISyntaxException ex) { throw new IllegalArgumentException(ex); } return baseUri; }
private EurekaHttpRequest mapToEurekaHttpRequest(HttpExchange httpExchange) { Headers exchangeHeaders = httpExchange.getRequestHeaders(); Map<String, String> headers = new HashMap<>(); for(String key: exchangeHeaders.keySet()) { headers.put(key, exchangeHeaders.getFirst(key)); } return new EurekaHttpRequest(httpExchange.getRequestMethod(), httpExchange.getRequestURI(), headers); }
private InBoundHeaders getHeaders(HttpExchange exchange) { InBoundHeaders rh = new InBoundHeaders(); Headers eh = exchange.getRequestHeaders(); for (Entry<String, List<String>> e : eh.entrySet()) { rh.put(e.getKey(), e.getValue()); } return rh; }
Headers h = httpExchange.getRequestHeaders(); String encoding; if (h.containsKey("Content-type")) {
Headers requestHeaders = exchange.getRequestHeaders(); Set<String> keySet = requestHeaders.keySet(); Iterator<String> iter = keySet.iterator();
List<String> hostHeader = exchange.getRequestHeaders().get("Host"); if (hostHeader != null) { StringBuilder sb = new StringBuilder(scheme);
case "PUT": String requestBody = decodeContent(exchange.getRequestHeaders(), exchange.getRequestBody()); response = replace(projectIdFromUri(path), jsonFactory.fromString(requestBody, Project.class));
@Override public void handle(HttpExchange httpExchange) throws IOException { Headers requestHeaders = httpExchange.getRequestHeaders(); String uploadTypeStr = requestHeaders.getFirst(FileUploadDownloadClient.CustomHeaders.UPLOAD_TYPE); FileUploadType uploadType = FileUploadType.valueOf(uploadTypeStr); String downloadUri = null; if (uploadType == FileUploadType.JSON) { InputStream bodyStream = httpExchange.getRequestBody(); downloadUri = JsonUtils.stringToJsonNode(IOUtils.toString(bodyStream, "UTF-8")) .get(CommonConstants.Segment.Offline.DOWNLOAD_URL).asText(); } else if (uploadType == FileUploadType.URI) { downloadUri = requestHeaders.getFirst(FileUploadDownloadClient.CustomHeaders.DOWNLOAD_URI); String crypter = requestHeaders.getFirst(FileUploadDownloadClient.CustomHeaders.CRYPTER); Assert.assertEquals(crypter, TEST_CRYPTER); } else { Assert.fail(); } Assert.assertEquals(downloadUri, TEST_URI); sendResponse(httpExchange, HttpStatus.SC_OK, "OK"); }
new MapPropertiesDelegate()); requestContext.setEntityStream(exchange.getRequestBody()); requestContext.getHeaders().putAll(exchange.getRequestHeaders()); requestContext.setWriter(responseWriter); try {
requestMessage.setHeaders(new UpnpHeaders(getHttpExchange().getRequestHeaders()));
private Response handlePost(HttpExchange exchange, String path) throws IOException { String requestBody = decodeContent(exchange.getRequestHeaders(), exchange.getRequestBody()); if (!path.contains(":")) { return create(jsonFactory.fromString(requestBody, Project.class)); } else { switch (path.split(":", 2)[1]) { case "undelete": return undelete(projectIdFromUri(path)); case "getIamPolicy": return getPolicy(projectIdFromUri(path)); case "setIamPolicy": return replacePolicy( projectIdFromUri(path), jsonFactory.fromString(requestBody, SetIamPolicyRequest.class).getPolicy()); case "testIamPermissions": return testPermissions( projectIdFromUri(path), jsonFactory .fromString(requestBody, TestIamPermissionsRequest.class) .getPermissions()); default: return Error.BAD_REQUEST.response( "The server could not understand the following request URI: POST " + path); } } }
protected static boolean shouldUseCompression(HttpExchange exchange) { List<String> encodingHeaders = exchange.getRequestHeaders().get("Accept-Encoding"); if (encodingHeaders == null) return false; for (String encodingHeader : encodingHeaders) { String[] encodings = encodingHeader.split(","); for (String encoding : encodings) { if (encoding.trim().toLowerCase().equals("gzip")) { return true; } } } return false; }
private String extractOriginOrReferer(HttpExchange pExchange) { Headers headers = pExchange.getRequestHeaders(); String origin = headers.getFirst("Origin"); if (origin == null) { origin = headers.getFirst("Referer"); } return origin != null ? origin.replaceAll("[\\n\\r]*","") : null; }
public static MultivaluedMap<String, String> extractRequestHeaders(HttpExchange request) { Headers<String> requestHeaders = new Headers<String>(); for (Map.Entry<String, List<String>> header : request.getRequestHeaders().entrySet()) { for (String val : header.getValue()) { requestHeaders.add(header.getKey(), val); } } return requestHeaders; } }
public HttpMessage(HttpExchange httpExchange) { this.body = IOUtils.toByteArray(httpExchange.getRequestBody()); ImmutableMultimap.Builder<String, String> headersBuilder = ImmutableMultimap.builder(); Set<String> headerNames = httpExchange.getRequestHeaders().keySet(); headerNames.stream() .forEach(headerName -> headersBuilder.putAll(headerName, httpExchange.getRequestHeaders().get(headerName))); this.headers = headersBuilder.build(); uri = httpExchange.getRequestURI().getPath(); queryParams = queryToMap(httpExchange.getRequestURI().getQuery()); }
private void performCorsPreflightCheck(HttpExchange pExchange) { Headers requestHeaders = pExchange.getRequestHeaders(); Map<String,String> respHeaders = requestHandler.handleCorsPreflightRequest(extractOriginOrReferer(pExchange), requestHeaders.getFirst("Access-Control-Request-Headers")); Headers responseHeaders = pExchange.getResponseHeaders(); for (Map.Entry<String,String> entry : respHeaders.entrySet()) { responseHeaders.set(entry.getKey(), entry.getValue()); } }
private JSONAware executePostRequest(HttpExchange pExchange, ParsedUri pUri) throws MalformedObjectNameException, IOException { String encoding = null; Headers headers = pExchange.getRequestHeaders(); String cType = headers.getFirst("Content-Type"); if (cType != null) { Matcher matcher = contentTypePattern.matcher(cType); if (matcher.matches()) { encoding = matcher.group(1); } } InputStream is = pExchange.getRequestBody(); return requestHandler.handlePostRequest(pUri.toString(),is, encoding, pUri.getParameterMap()); }
private void handleClientStart(HttpExchange t, ConsoleProxyClient viewer, String title, String guest) throws IOException { List<String> languages = t.getRequestHeaders().get("Accept-Language"); String response = viewer.onAjaxClientStart(title, languages, guest); Headers hds = t.getResponseHeaders(); hds.set("Content-Type", "text/html"); hds.set("Cache-Control", "no-cache"); hds.set("Cache-Control", "no-store"); t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); try { os.write(response.getBytes()); } finally { os.close(); } }
@Override public Result authenticate(HttpExchange pHttpExchange) { try { URLConnection connection = delegateURL.openConnection(); connection.addRequestProperty("Authorization", pHttpExchange.getRequestHeaders().getFirst("Authorization")); connection.setConnectTimeout(2000); connection.connect(); if (connection instanceof HttpURLConnection) { HttpURLConnection httpConnection = (HttpURLConnection) connection; return httpConnection.getResponseCode() == 200 ? new Success(principalExtractor.extract(connection)) : new Failure(401); } else { return new Failure(401); } } catch (final IOException e) { return prepareFailure(pHttpExchange, "Cannot call delegate url " + delegateURL + ": " + e, 503); } catch (final IllegalArgumentException e) { return prepareFailure(pHttpExchange, "Illegal Argument: " + e, 400); } catch (ParseException e) { return prepareFailure(pHttpExchange, "Invalid JSON response: " + e, 422); } }
private void setHeaders(HttpExchange pExchange) { String origin = requestHandler.extractCorsOrigin(pExchange.getRequestHeaders().getFirst("Origin")); Headers headers = pExchange.getResponseHeaders(); if (origin != null) { headers.set("Access-Control-Allow-Origin",origin); headers.set("Access-Control-Allow-Credentials","true"); } // Avoid caching at all costs headers.set("Cache-Control", "no-cache"); headers.set("Pragma","no-cache"); // Check for a date header and set it accordingly to the recommendations of // RFC-2616. See also {@link AgentServlet#setNoCacheHeaders()} // Issue: #71 Calendar cal = Calendar.getInstance(); headers.set("Date",formatHeaderDate(cal.getTime())); // 1h in the past since it seems, that some servlet set the date header on their // own so that it cannot be guaranteed that these headers are really equals. // It happened on Tomcat that "Date:" was finally set *before* "Expires:" in the final // answers sometimes which seems to be an implementation peculiarity from Tomcat cal.add(Calendar.HOUR, -1); headers.set("Expires",formatHeaderDate(cal.getTime())); }