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); }
String encoding; if (h.containsKey("Content-type")) { String[] charsetPair = Arrays.stream(h.getFirst("Content-type").split(";")) .map(x -> x.split("=")) .filter(x -> x.length > 0 && "charset".equals(x[0]))
@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"); }
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()); }
@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); } }
@Override public void doFilter(HttpExchange exchange, Chain chain) throws IOException String auth = exchange.getRequestHeaders().getFirst(HttpHeaderNames.AUTHORIZATION); if (auth != null && auth.length() > 5)
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())); }
if (f.exists()) { long lastModified = f.lastModified(); String ifModifiedSince = t.getRequestHeaders().getFirst("If-Modified-Since"); if (ifModifiedSince != null) { long d = Date.parse(ifModifiedSince);
@Override protected String getContentType() { String contentTypeHeaderValue = m_httpExchange.getRequestHeaders().getFirst(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); if (contentTypeHeaderValue == null) { return null; } int firstSemicolon = contentTypeHeaderValue.indexOf(";"); if (firstSemicolon == -1) { return contentTypeHeaderValue; } return contentTypeHeaderValue.substring(0, firstSemicolon); }
@Override protected String getXForwardedForHeader() { return m_httpExchange.getRequestHeaders().getFirst(HttpHeaderAttribute.HEADER_NAME_XFORWARDEDFOR); }
@Override protected String getHttpReferrerHeader() { return m_httpExchange.getRequestHeaders().getFirst(HttpHeaderAttribute.HEADER_NAME_REFERER); }
private void handleLogRequest(HttpExchange httpExchange, Map<String, String> parameters) throws IOException { // used so the client (especially the browser add-ons) can report internal issues: String message = parameters.get("message"); if (message != null && message.length() > 250) { message = message.substring(0, 250) + "..."; } ServerTools.print("Log message from client: " + message + " - User-Agent: " + httpExchange.getRequestHeaders().getFirst("User-Agent")); String response = "OK"; httpExchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, response.getBytes(ENCODING).length); httpExchange.getResponseBody().write(response.getBytes(ENCODING)); }
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 void soapContext(HttpExchange exchange) throws IOException { String path = exchange.getRequestURI().getPath(); String soapAction = exchange.getRequestHeaders().getFirst("SOAPAction"); Document xmlRequest = Xml.read(new InputStreamReader(exchange.getRequestBody())); if (!soapEndpoints.containsKey(path)) { exchange.sendResponseHeaders(HttpURLConnection.HTTP_NOT_FOUND, -1); exchange.close(); return; } Element response = soapEndpoints.get(path).processRequest(soapAction, xmlRequest); writeXmlResponse(response, exchange); }
private boolean isAccessAllowed(HttpExchange exchange) { if (controller.getMetricConfig().containsKey(LOOKOUT_EXPORTER_ACCESS_TOKEN)) { //check access token String requestToken = exchange.getRequestHeaders().getFirst("X-Lookout-Token"); if (!StringUtils.equals(requestToken, controller.getMetricConfig().getString(LOOKOUT_EXPORTER_ACCESS_TOKEN))) { return false; } } return true; }
public void handle(HttpExchange exchange) throws IOException { exchange.sendResponseHeaders(200, 0); try { String clusterName = exchange.getRequestHeaders().getFirst(CLUSTER_NAME); JChannel channel = server.getChannel(clusterName); try (InputStream stream = exchange.getRequestBody()) { handlePingRequest(channel, stream); } } catch (Exception e) { throw new IOException(e); } } }
@Override public void handle(HttpHeaderAttribute attribute) { Headers responseHeaders = m_exchange.getResponseHeaders(); boolean headerAlreadyPresent = responseHeaders.getFirst(attribute.getName()) != null; if (headerAlreadyPresent) { return; } responseHeaders.add(attribute.getName(), (String) attribute.getValue()); } }