javax.ws.rs.container.ContainerResponseContext.getHeaders()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(12.0k)|赞(0)|评价(0)|浏览(120)

本文整理了Java中javax.ws.rs.container.ContainerResponseContext.getHeaders()方法的一些代码示例,展示了ContainerResponseContext.getHeaders()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ContainerResponseContext.getHeaders()方法的具体详情如下:
包路径:javax.ws.rs.container.ContainerResponseContext
类名称:ContainerResponseContext
方法名:getHeaders

ContainerResponseContext.getHeaders介绍

[英]Get the mutable response headers multivalued map.
[中]获取可变响应头多值映射。

代码示例

代码示例来源:origin: stackoverflow.com

import java.io.IOException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;

@Provider
public class CORSFilter implements ContainerResponseFilter {

  @Override
  public void filter(ContainerRequestContext request,
      ContainerResponseContext response) throws IOException {
    response.getHeaders().add("Access-Control-Allow-Origin", "*");
    response.getHeaders().add("Access-Control-Allow-Headers",
        "origin, content-type, accept, authorization");
    response.getHeaders().add("Access-Control-Allow-Credentials", "true");
    response.getHeaders().add("Access-Control-Allow-Methods",
        "GET, POST, PUT, DELETE, OPTIONS, HEAD");
  }
}

代码示例来源:origin: stackoverflow.com

package com.yourdomain.package;

import java.io.IOException;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.ext.Provider;

@Provider
public class CORSFilter implements ContainerResponseFilter {

  @Override
  public void filter(final ContainerRequestContext requestContext,
           final ContainerResponseContext cres) throws IOException {
   cres.getHeaders().add("Access-Control-Allow-Origin", "*");
   cres.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
   cres.getHeaders().add("Access-Control-Allow-Credentials", "true");
   cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
   cres.getHeaders().add("Access-Control-Max-Age", "1209600");
  }

}

代码示例来源:origin: dropwizard/dropwizard

@Override
public void filter(ContainerRequestContext requestContext,
          ContainerResponseContext responseContext) throws IOException {
  if (!cacheResponseHeader.isEmpty()) {
    responseContext.getHeaders().add(HttpHeaders.CACHE_CONTROL, cacheResponseHeader);
  }
}

代码示例来源:origin: apache/incubator-pinot

@Override
 public void filter(ContainerRequestContext containerRequestContext,
   ContainerResponseContext containerResponseContext)
   throws IOException {
  containerResponseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
 }
});

代码示例来源:origin: apache/incubator-pinot

@Override
 public void filter(ContainerRequestContext containerRequestContext,
   ContainerResponseContext containerResponseContext)
   throws IOException {
  containerResponseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
 }
});

代码示例来源:origin: apache/incubator-pinot

@Override
 public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
   throws IOException {
  responseContext.getHeaders().putSingle(CommonConstants.Controller.HOST_HTTP_HEADER, _controllerHost);
  responseContext.getHeaders().putSingle(CommonConstants.Controller.VERSION_HTTP_HEADER, _controllerVersion);
 }
}

代码示例来源:origin: dropwizard/dropwizard

@Override
  public void filter(final ContainerRequestContext request,
      final ContainerResponseContext response) throws IOException {

    final Long startTime = (Long) request.getProperty(RUNTIME_PROPERTY);
    if (startTime != null) {
      final float seconds = (currentTimeProvider.get() - startTime) / NANOS_IN_SECOND;
      response.getHeaders().putSingle(RUNTIME_HEADER, String.format(Locale.ROOT, "%.6f", seconds));
    }
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    final Timer.Context context = (Timer.Context) requestContext.getProperty("metricsTimerContext");
    if (context == null) return;
    final long elapsedNanos = context.stop();
    responseContext.getHeaders().add("X-Runtime-Microseconds", TimeUnit.NANOSECONDS.toMicros(elapsedNanos));
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    // Add no-cache to XMLHttpRequests, to avoid browsers caching results
    String requestedWith = requestContext.getHeaders().getFirst("X-Requested-With");
    if ("XMLHttpRequest".equals(requestedWith)) {
      responseContext.getHeaders().add("Cache-Control", "no-cache");
    }
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    responseContext.getHeaders().add("X-Graylog-Node-ID", nodeId.toString());
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    if (responseContext.hasEntity()) {
      Exception e = (Exception) responseContext.getEntity();
      if (exceptionClass.isAssignableFrom(e.getClass()) ||
          (e.getCause() != null && exceptionClass.isAssignableFrom(e.getCause().getClass()))) {
        meter.mark();
      }
      responseContext.setEntity(null);
      responseContext.getHeaders().add("X-Exceptions-Thrown", e.toString() + " : " + meter.getCount());
    }
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
  // we have already added the necessary headers for OPTIONS requests below
  if ("options".equalsIgnoreCase(requestContext.getRequest().getMethod())) {
    if(Response.Status.Family.familyOf(responseContext.getStatus()) == Response.Status.Family.SUCCESSFUL) {
      return;
    }
    responseContext.setStatus(Response.Status.NO_CONTENT.getStatusCode());
    responseContext.setEntity("");
  }
  String origin = requestContext.getHeaders().getFirst("Origin");
  if (origin != null && !origin.isEmpty()) {
    responseContext.getHeaders().add("Access-Control-Allow-Origin", origin);
    responseContext.getHeaders().add("Access-Control-Allow-Credentials", true);
    responseContext.getHeaders().add("Access-Control-Allow-Headers", "Authorization, Content-Type, X-Graylog-No-Session-Extension, X-Requested-With, X-Requested-By");
    responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
    // In order to avoid redoing the preflight thingy for every request, see http://stackoverflow.com/a/12021982/1088469
    responseContext.getHeaders().add("Access-Control-Max-Age", "600"); // 10 minutes seems to be the maximum allowable value
  }
}

代码示例来源:origin: jersey/jersey

@Override
  public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
      throws IOException {

    if (HttpMethod.OPTIONS.equals(requestContext.getMethod())) {
      final MultivaluedMap<String, Object> headers = responseContext.getHeaders();
      if (!headers.containsKey(ACCEPT_PATCH_HEADER)) {
        headers.putSingle(ACCEPT_PATCH_HEADER, MediaType.APPLICATION_JSON_PATCH_JSON);
      }
    }
  }
}

代码示例来源:origin: dropwizard/dropwizard

@Override
  public void filter(final ContainerRequestContext request,
      final ContainerResponseContext response) throws IOException {

    final MediaType type = response.getMediaType();
    if (type != null && !type.getParameters().containsKey(MediaType.CHARSET_PARAMETER)) {
      final MediaType typeWithCharset = type.withCharset(UTF_8);
      response.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, typeWithCharset);
    }
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    if (responseContext.getStatusInfo().equals(Response.Status.UNAUTHORIZED)) {
      final String requestedWith = requestContext.getHeaderString(HttpHeaders.X_REQUESTED_WITH);
      if ("XMLHttpRequest".equalsIgnoreCase(requestedWith)) {
        responseContext.getHeaders().remove(HttpHeaders.WWW_AUTHENTICATE);

      }
    }
  }
}

代码示例来源:origin: opentripplanner/OpenTripPlanner

/**
 * CORS response filter. Allow requests from anywhere.
 * Just echo back the contents of the Origin header.
 * Allow credentials if the transport layer is secure.
 */
@Override
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
  String origin = request.getHeaderString("Origin"); // case insensitive
  MultivaluedMap<String, Object> headers = response.getHeaders();
  headers.add("Access-Control-Allow-Origin", origin);
  boolean secureTransport = request.getSecurityContext().isSecure();
  headers.add("Access-Control-Allow-Credentials", secureTransport);
}

代码示例来源:origin: traccar/traccar

@Override
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
  if (!response.getHeaders().containsKey(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS.toString())) {
    response.getHeaders().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS.toString(), HEADERS_ALL);
  }
  if (!response.getHeaders().containsKey(HttpHeaderNames.ACCESS_CONTROL_ALLOW_CREDENTIALS.toString())) {
    response.getHeaders().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_CREDENTIALS.toString(), true);
  }
  if (!response.getHeaders().containsKey(HttpHeaderNames.ACCESS_CONTROL_ALLOW_METHODS.toString())) {
    response.getHeaders().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_METHODS.toString(), METHODS_ALL);
  }
  if (!response.getHeaders().containsKey(HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN.toString())) {
    String origin = request.getHeaderString(HttpHeaderNames.ORIGIN.toString());
    String allowed = Context.getConfig().getString("web.origin");
    if (origin == null) {
      response.getHeaders().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN.toString(), ORIGIN_ALL);
    } else if (allowed == null || allowed.equals(ORIGIN_ALL) || allowed.contains(origin)) {
      response.getHeaders().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN.toString(), origin);
    }
  }
}

代码示例来源:origin: dropwizard/dropwizard

@Override
public void filter(final ContainerRequestContext request,
    final ContainerResponseContext response) throws IOException {
  String id = request.getHeaderString(REQUEST_ID);
  if (Strings.isNullOrEmpty(id)) {
    id = generateRandomUuid().toString();
  }
  logger.trace("method={} path={} request_id={} status={} length={}",
      request.getMethod(), request.getUriInfo().getPath(), id,
      response.getStatus(), response.getLength());
  response.getHeaders().putSingle(REQUEST_ID, id);
}

代码示例来源:origin: jersey/jersey

@Override
  @SuppressWarnings("unchecked")
  public void filter(ContainerRequestContext request, ContainerResponseContext response) {
    final Object entity = response.getEntity();

    if (entity != null && !uriInfo.getMatchedResources().isEmpty()) {
      Class<?> entityClass = entity.getClass();
      HeaderProcessor lhp = new HeaderProcessor(entityClass);
      lhp.processLinkHeaders(entity, uriInfo, rmc, response.getHeaders());
      FieldProcessor lp = new FieldProcessor(entityClass);
      lp.processLinks(entity, uriInfo, rmc, rlcc);
    }

  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    final Response.StatusType responseStatus = responseContext.getStatusInfo();
    final String requestPath = requestContext.getUriInfo().getAbsolutePath().getPath();
    final List<MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes();
    final boolean acceptsHtml = acceptableMediaTypes.stream()
        .anyMatch(mediaType -> mediaType.isCompatible(MediaType.TEXT_HTML_TYPE) || mediaType.isCompatible(MediaType.APPLICATION_XHTML_XML_TYPE));
    final boolean isGetRequest = "get".equalsIgnoreCase(requestContext.getMethod());

    if (isGetRequest
        && responseStatus == Response.Status.NOT_FOUND
        && acceptsHtml
        && !requestPath.startsWith("/" + HttpConfiguration.PATH_API)) {
      final String entity = indexHtmlGenerator.get(requestContext.getHeaders());
      responseContext.setStatusInfo(Response.Status.OK);
      responseContext.setEntity(entity, new Annotation[0], MediaType.TEXT_HTML_TYPE);

      responseContext.getHeaders().putSingle("X-UA-Compatible", "IE=edge");
    }
  }
}

相关文章