private static HttpHeaders createDefaultHttpHeaders(HttpServletRequest request) { HttpHeaders headers = new HttpHeaders(); for (Enumeration<?> names = request.getHeaderNames(); names.hasMoreElements(); ) { String name = (String) names.nextElement(); for (Enumeration<?> values = request.getHeaders(name); values.hasMoreElements(); ) { headers.add(name, (String) values.nextElement()); } } return headers; }
public final static boolean rawWebSocket(HttpServletRequest request) { Enumeration<String> connection = request.getHeaders("Connection"); if (connection == null || !connection.hasMoreElements()) { connection = request.getHeaders("connection"); } if (connection != null && connection.hasMoreElements()) { String[] e = connection.nextElement().toString().split(","); for (String upgrade : e) { if (upgrade.trim().equalsIgnoreCase(WEBSOCKET_UPGRADE)) { return true; } } } return false; }
private void logRequest(HttpServletRequest request) { LogFormatUtils.traceDebug(logger, traceOn -> { String params; if (isEnableLoggingRequestDetails()) { params = request.getParameterMap().entrySet().stream() .map(entry -> entry.getKey() + ":" + Arrays.toString(entry.getValue())) .collect(Collectors.joining(", ")); } else { params = (request.getParameterMap().isEmpty() ? "" : "masked"); } String query = StringUtils.isEmpty(request.getQueryString()) ? "" : "?" + request.getQueryString(); String dispatchType = (!request.getDispatcherType().equals(DispatcherType.REQUEST) ? "\"" + request.getDispatcherType().name() + "\" dispatch for " : ""); String message = (dispatchType + request.getMethod() + " \"" + getRequestUri(request) + query + "\", parameters={" + params + "}"); if (traceOn) { List<String> values = Collections.list(request.getHeaderNames()); String headers = values.size() > 0 ? "masked" : ""; if (isEnableLoggingRequestDetails()) { headers = values.stream().map(name -> name + ":" + Collections.list(request.getHeaders(name))) .collect(Collectors.joining(", ")); } return message + ", headers={" + headers + "} in DispatcherServlet '" + getServletName() + "'"; } else { return message; } }); }
Enumeration<?> reqRanges = request.getHeaders("Range"); if (reqRanges == null || !reqRanges.hasMoreElements()) {
private static Map<String, List<String>> initHeaders(HttpServletRequest request) { Map<String, List<String>> headers = new LinkedCaseInsensitiveMap<>(Locale.ENGLISH); Enumeration<String> names = request.getHeaderNames(); while (names.hasMoreElements()) { String name = names.nextElement(); if (!FORWARDED_HEADER_NAMES.contains(name)) { headers.put(name, Collections.list(request.getHeaders(name))); } } return headers; }
@Override public List<String> getHeaderValues(String s) { Enumeration<String> values = m_request.getHeaders(s); List<String> ret = new ArrayList<String>(); while (values.hasMoreElements()) { ret.add(values.nextElement()); } return (ret); }
@Override public Map<String, Collection<String>> getHeaders() { ImmutableMultimap.Builder<String, String> builder = ImmutableMultimap.builder(); for ( String name : fromEnumeration( req.getHeaderNames() ) ) { builder.putAll( name, fromEnumeration( req.getHeaders( name ) ) ); } return builder.build().asMap(); }
private static HttpHeaders createDefaultHttpHeaders(HttpServletRequest request) { HttpHeaders headers = new HttpHeaders(); for (Enumeration<?> names = request.getHeaderNames(); names.hasMoreElements(); ) { String name = (String) names.nextElement(); for (Enumeration<?> values = request.getHeaders(name); values.hasMoreElements(); ) { headers.add(name, (String) values.nextElement()); } } return headers; }
public static boolean properProtocol(HttpServletRequest request) { Enumeration<String> connection = request.getHeaders("Connection"); if (connection == null || !connection.hasMoreElements()) { connection = request.getHeaders("connection"); } boolean isOK = false; boolean isWebSocket = (request.getHeader(WEBSOCKET_VERSION) != null || request.getHeader("Sec-WebSocket-Draft") != null); if (connection != null && connection.hasMoreElements()) { String[] e = connection.nextElement().toString().split(","); for (String upgrade : e) { if (upgrade.trim().equalsIgnoreCase("upgrade")) { isOK = true; } } } return isWebSocket ? isOK : true; }
private void logRequest(HttpServletRequest request) { LogFormatUtils.traceDebug(logger, traceOn -> { String params; if (isEnableLoggingRequestDetails()) { params = request.getParameterMap().entrySet().stream() .map(entry -> entry.getKey() + ":" + Arrays.toString(entry.getValue())) .collect(Collectors.joining(", ")); } else { params = (request.getParameterMap().isEmpty() ? "" : "masked"); } String query = StringUtils.isEmpty(request.getQueryString()) ? "" : "?" + request.getQueryString(); String dispatchType = (!request.getDispatcherType().equals(DispatcherType.REQUEST) ? "\"" + request.getDispatcherType().name() + "\" dispatch for " : ""); String message = (dispatchType + request.getMethod() + " \"" + getRequestUri(request) + query + "\", parameters={" + params + "}"); if (traceOn) { List<String> values = Collections.list(request.getHeaderNames()); String headers = values.size() > 0 ? "masked" : ""; if (isEnableLoggingRequestDetails()) { headers = values.stream().map(name -> name + ":" + Collections.list(request.getHeaders(name))) .collect(Collectors.joining(", ")); } return message + ", headers={" + headers + "} in DispatcherServlet '" + getServletName() + "'"; } else { return message; } }); }
@Override public Map<String, List<String>> getHeaders() { Map<String, List<String>> headers = new HashMap<>(); Enumeration<String> names = httpServletRequest.getHeaderNames(); while (names.hasMoreElements()) { String name = names.nextElement(); headers.put(name, Collections.list(httpServletRequest.getHeaders(name))); } return headers; }
ifNoneMatch = getRequest().getHeaders(IF_NONE_MATCH); if (!ifNoneMatch.hasMoreElements()) { return false; etag = etag.substring(2); while (ifNoneMatch.hasMoreElements()) { String clientETags = ifNoneMatch.nextElement(); Matcher etagMatcher = ETAG_HEADER_VALUE_PATTERN.matcher(clientETags);
@VisibleForTesting Request asApolloRequest(HttpServletRequest req) throws IOException { final String uri = req.getRequestURI() + (req.getQueryString() == null ? "" : "?" + req.getQueryString()); final String method = req.getMethod(); final int contentLength = req.getContentLength(); final ImmutableMap.Builder<String, String> headersBuilder = ImmutableMap.builder(); toStream(req.getHeaderNames()) .forEachOrdered( name -> headersBuilder.put( name, toStream(req.getHeaders(name)).collect(Collectors.joining(",")) )); final ImmutableMap<String, String> headers = headersBuilder.build(); Request request = Request.forUri(uri, method).withHeaders(headers); final Optional<String> callingService = request.header("X-Calling-Service"); if (callingService.isPresent() && !callingService.get().isEmpty()) { request = request.withService(callingService.get()); } Optional<ByteString> payload = readPayload(req, contentLength); if (payload.isPresent()) { request = request.withPayload(payload.get()); } return request; }
private static Map<String, List<String>> initHeaders(HttpServletRequest request) { Map<String, List<String>> headers = new LinkedCaseInsensitiveMap<>(Locale.ENGLISH); Enumeration<String> names = request.getHeaderNames(); while (names.hasMoreElements()) { String name = names.nextElement(); if (!FORWARDED_HEADER_NAMES.contains(name)) { headers.put(name, Collections.list(request.getHeaders(name))); } } return headers; }
public Object getValue (Object pKey) { if (pKey instanceof String) { // Drain the header enumeration List l = new ArrayList (); Enumeration e = request.getHeaders ((String) pKey); if (e != null) { while (e.hasMoreElements ()) { l.add (e.nextElement ()); } } String [] ret = (String []) l.toArray (new String [l.size ()]); return ret; } else { return null; } }
private void performRequest( HttpServletRequest servletRequest, AsyncResponse asyncResponse, Request.Builder requestBuilder, Function<ProxyResponse, Response> responseBuilder) { setupBearerToken(servletRequest, requestBuilder); for (String name : list(servletRequest.getHeaderNames())) { if (isPrestoHeader(name) || name.equalsIgnoreCase(COOKIE)) { for (String value : list(servletRequest.getHeaders(name))) { requestBuilder.addHeader(name, value); } } else if (name.equalsIgnoreCase(USER_AGENT)) { for (String value : list(servletRequest.getHeaders(name))) { requestBuilder.addHeader(name, "[Presto Proxy] " + value); } } } Request request = requestBuilder .setPreserveAuthorizationOnRedirect(true) .build(); ListenableFuture<Response> future = executeHttp(request) .transform(responseBuilder::apply, executor) .catching(ProxyException.class, e -> handleProxyException(request, e), directExecutor()); setupAsyncResponse(asyncResponse, future); }
@SuppressWarnings("unchecked") protected final String dumpRequest(HttpServletRequest r) { StringBuilder builder = new StringBuilder(256); builder.append("\n ").append(r.getMethod()).append(" ").append(r.getRequestURI()).append("\n"); Enumeration<String> e = r.getHeaderNames(); while (e.hasMoreElements()) { String hdrName = e.nextElement(); Enumeration<String> values = r.getHeaders(hdrName); while (values.hasMoreElements()) { builder.append(" ").append(hdrName).append(": ").append(values.nextElement()).append("\n"); } } return builder.toString(); }
private boolean checkNotModified(HttpServletRequest request, long timeStamp) { Enumeration headers = request.getHeaders("If-Modified-Since"); String header = headers != null && headers.hasMoreElements() ? headers.nextElement().toString() : null; if (header != null && header.length() > 0) { long ifModSinceSeconds = lastModified(header); // the HTTP header has second precision long timeStampSeconds = 1000 * (timeStamp / 1000); return ifModSinceSeconds >= timeStampSeconds; } return false; }
private void testCarteRequest( CarteRequestHandler.CarteRequest carteRequest ) { when( req.getMethod() ).thenReturn( "POST" ); when( req.getHeader( "Connection" ) ).thenReturn( "Keep-Alive" ); when( req.getParameter( "param1" ) ).thenReturn( "val1" ); when( req.getParameterNames() ).thenReturn( Collections.enumeration( Arrays.asList( "name1", "name2" ) ) ); when( req.getParameterValues( any( String.class ) ) ) .thenReturn( new String[] { "val" } ); when( req.getHeaderNames() ).thenReturn( Collections.enumeration( Arrays.asList( "name1", "name2" ) ) ); when( req.getHeaders( "name1" ) ).thenReturn( Collections.enumeration( ImmutableList.of( "val" ) ) ); when( req.getHeaders( "name2" ) ).thenReturn( Collections.enumeration( ImmutableList.of( "val" ) ) ); assertThat( carteRequest.getMethod(), is( "POST" ) ); assertThat( carteRequest.getHeader( "Connection" ), is( "Keep-Alive" ) ); assertThat( carteRequest.getParameter( "param1" ), is( "val1" ) ); checkMappedVals( carteRequest.getParameters() ); checkMappedVals( carteRequest.getHeaders() ); }
/** * Copy request headers present in {@code request} into {@code requestContext} ignoring {@code null} values. * * @param request http servlet request to copy headers from. * @param requestContext container request to copy headers to. */ @SuppressWarnings("unchecked") private void addRequestHeaders(final HttpServletRequest request, final ContainerRequest requestContext) { final Enumeration<String> names = request.getHeaderNames(); while (names.hasMoreElements()) { final String name = names.nextElement(); final Enumeration<String> values = request.getHeaders(name); while (values.hasMoreElements()) { final String value = values.nextElement(); if (value != null) { // filter out null values requestContext.header(name, value); } } } }