@Override public Collection<String> getHeaders(String name) { return response.getHeaders(name); }
private Collection<String> getVaryRequestHeadersToAdd(HttpServletResponse response, String[] varyByRequestHeaders) { if (!response.containsHeader(HttpHeaders.VARY)) { return Arrays.asList(varyByRequestHeaders); } Collection<String> result = new ArrayList<>(varyByRequestHeaders.length); Collections.addAll(result, varyByRequestHeaders); for (String header : response.getHeaders(HttpHeaders.VARY)) { for (String existing : StringUtils.tokenizeToStringArray(header, ",")) { if ("*".equals(existing)) { return Collections.emptyList(); } for (String value : varyByRequestHeaders) { if (value.equalsIgnoreCase(existing)) { result.remove(value); } } } } return result; }
@Override public List<String> get(Object key) { Assert.isInstanceOf(String.class, key, "Key must be a String-based header name"); Collection<String> values1 = servletResponse.getHeaders((String) key); if (headersWritten) { return new ArrayList<>(values1); } boolean isEmpty1 = CollectionUtils.isEmpty(values1); List<String> values2 = super.get(key); boolean isEmpty2 = CollectionUtils.isEmpty(values2); if (isEmpty1 && isEmpty2) { return null; } List<String> values = new ArrayList<>(); if (!isEmpty1) { values.addAll(values1); } if (!isEmpty2) { values.addAll(values2); } return values; } }
@Override public List<String> headers(final String name) { Collection<String> headers = rsp.getHeaders(name); if (headers == null || headers.size() == 0) { return Collections.emptyList(); } return ImmutableList.copyOf(headers); }
/** * Checks if the HTTP request/response accepts and wants GZIP and i that case wraps the response output stream in a * {@link java.util.zip.GZIPOutputStream}. * * @param httpRequest the HTTP servlet request. * @param httpResponse the HTTP servlet response. * @param requireWantsHeader if wants header is required * @return if accepted and wanted a {@link java.util.zip.GZIPOutputStream} otherwise the unchanged response * output stream. * @throws IOException in case of IO error. */ public static OutputStream checkAndWrap(HttpServletRequest httpRequest, HttpServletResponse httpResponse, boolean requireWantsHeader) throws IOException { OutputStream responseStream = httpResponse.getOutputStream(); // GZIP Support handled here. First we must ensure that we want to use gzip, and that the client supports gzip boolean acceptsGzip = Collections.list(httpRequest.getHeaders(ACCEPT_ENCODING)).stream().anyMatch(STRING_MATCH); boolean wantGzip = httpResponse.getHeaders(CONTENT_ENCODING).contains(GZIP); if (acceptsGzip) { if (!requireWantsHeader || wantGzip) { responseStream = new GZIPOutputStream(responseStream, true); addContentEncodingHeaderIfMissing(httpResponse, wantGzip); } } return responseStream; }
private Collection<String> getVaryRequestHeadersToAdd(HttpServletResponse response, String[] varyByRequestHeaders) { if (!response.containsHeader(HttpHeaders.VARY)) { return Arrays.asList(varyByRequestHeaders); } Collection<String> result = new ArrayList<>(varyByRequestHeaders.length); Collections.addAll(result, varyByRequestHeaders); for (String header : response.getHeaders(HttpHeaders.VARY)) { for (String existing : StringUtils.tokenizeToStringArray(header, ",")) { if ("*".equals(existing)) { return Collections.emptyList(); } for (String value : varyByRequestHeaders) { if (value.equalsIgnoreCase(existing)) { result.remove(value); } } } } return result; }
@Override public Collection<String> getHeaders(String name) { ArrayList<String> s = new ArrayList<String>(); String h; if (name.equalsIgnoreCase("content-type")) { h = headers.get("Content-Type"); } else { h = headers.get(name); } s.add(h); if (servlet30) { Collection<String> r = _r().getHeaders(name); if (r != null && !r.isEmpty()) { s.addAll(r); } } return Collections.unmodifiableList(s); }
@Override public List<String> get(Object key) { Assert.isInstanceOf(String.class, key, "Key must be a String-based header name"); Collection<String> values1 = servletResponse.getHeaders((String) key); if (headersWritten) { return new ArrayList<>(values1); } boolean isEmpty1 = CollectionUtils.isEmpty(values1); List<String> values2 = super.get(key); boolean isEmpty2 = CollectionUtils.isEmpty(values2); if (isEmpty1 && isEmpty2) { return null; } List<String> values = new ArrayList<>(); if (!isEmpty1) { values.addAll(values1); } if (!isEmpty2) { values.addAll(values2); } return values; } }
Collection<String> names = response.getHeaderNames(); if (this.enableLoggingRequestDetails) { headers = names.stream().map(name -> name + ":" + response.getHeaders(name)) .collect(Collectors.joining(", "));
Collection<String> names = response.getHeaderNames(); if (this.enableLoggingRequestDetails) { headers = names.stream().map(name -> name + ":" + response.getHeaders(name)) .collect(Collectors.joining(", "));
@Test // SPR-11919 public void handleInfoGetWildflyNPE() throws IOException { HttpServletResponse mockResponse = mock(HttpServletResponse.class); ServletOutputStream ous = mock(ServletOutputStream.class); given(mockResponse.getHeaders(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)).willThrow(NullPointerException.class); given(mockResponse.getOutputStream()).willReturn(ous); this.response = new ServletServerHttpResponse(mockResponse); handleRequest("GET", "/echo/info", HttpStatus.OK); verify(mockResponse, times(1)).getOutputStream(); }
@Override public Collection<String> getHeaders(String s) { return servletResponse.getHeaders(s); }
private Map<String, List<String>> extractHeaders() { Map<String, List<String>> headers = new LinkedHashMap<>(); for (String name : this.delegate.getHeaderNames()) { headers.put(name, new ArrayList<>(this.delegate.getHeaders(name))); } return headers; }
public Collection<String> getHeaders(String headerName) { return getHttpServletResponse().getHeaders(headerName); }
/** * The default behaviour of this method is to call * {@link HttpServletResponse#getHeaders} on the wrapped response * object. * * <p>Any changes to the returned <code>Collection</code> must not * affect this <code>HttpServletResponseWrapper</code>. * * @param name the name of the response header whose values to return * * @return a (possibly empty) <code>Collection</code> of the values * of the response header with the given name * * @since Servlet 3.0 */ public Collection<String> getHeaders(String name) { return _getHttpServletResponse().getHeaders(name); }
private void streamResponseHeaders(RequestDetails theRequestDetails, HttpServletResponse theServletResponse, StringBuilder b) { if (theServletResponse.getHeaderNames().isEmpty() == false) { b.append("<h1>Response Headers</h1>"); b.append("<div class=\"headersDiv\">"); for (String nextHeaderName : theServletResponse.getHeaderNames()) { for (String nextHeaderValue : theServletResponse.getHeaders(nextHeaderName)) { /* * Let's pretend we're returning a FHIR content type even though we're * actually returning an HTML one */ if (nextHeaderName.equalsIgnoreCase(Constants.HEADER_CONTENT_TYPE)) { ResponseEncoding responseEncoding = RestfulServerUtils.determineResponseEncodingNoDefault(theRequestDetails, theRequestDetails.getServer().getDefaultResponseEncoding()); if (responseEncoding != null && isNotBlank(responseEncoding.getResourceContentType())) { nextHeaderValue = responseEncoding.getResourceContentType() + ";charset=utf-8"; } } b.append("<div class=\"headersRow\">"); b.append("<span class=\"headerName\">").append(nextHeaderName).append(": ").append("</span>"); b.append("<span class=\"headerValue\">").append(nextHeaderValue).append("</span>"); b.append("</div>"); } } b.append("</div>"); } }
@Override public Collection<String> getHeaders(String name) { return _response.getHeaders(name); }
@Override public Map<String, List<String>> getResponseHeaders() { Map<String, List<String>> headers = new HashMap<>(); final Collection<String> headerNames = response.getHeaderNames(); for (String header : headerNames) { headers.put(header, new ArrayList<>(response.getHeaders(header))); } return Collections.unmodifiableMap(headers); }
private static String get(HttpServletResponse response, String name) { Collection<String> en = response.getHeaders(name) ; if ( en.isEmpty() )return null ; if ( en.size() != 1 ) Log.warn(RequestLog.class, "Multiple response header values") ; return response.getHeader(name) ; }
private void addResponseHeaders(HttpServletResponse httpRes, IpcLogEntry entry) { Collection<String> headers = httpRes.getHeaderNames(); for (String header : headers) { Collection<String> values = httpRes.getHeaders(header); for (String value : values) { entry.addResponseHeader(header, value); } } }