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

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

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

ContainerResponseContext.getEntityStream介绍

[英]Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.
[中]获取实体输出流。JAX-RS运行时负责关闭输出流。

代码示例

代码示例来源:origin: docker-java/docker-java

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final long id = aid.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (printEntity && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

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

@Override
  public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
      throws IOException {
    if (!logger.isLoggable(level)) {
      return;
    }
    final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
    final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();

    final StringBuilder b = new StringBuilder();

    printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
    printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());

    if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) {
      final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
      responseContext.setEntityStream(stream);
      requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
      // not calling log(b) here - it will be called by the interceptor
    } else {
      log(b);
    }
  }
}

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

@Override
  public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
      throws IOException {
    if (!logger.isLoggable(level)) {
      return;
    }
    final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
    final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();

    final StringBuilder b = new StringBuilder();

    printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
    printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());

    if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) {
      final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
      responseContext.setEntityStream(stream);
      requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
      // not calling log(b) here - it will be called by the interceptor
    } else {
      log(b);
    }
  }
}

代码示例来源:origin: oracle/helidon

OutputStream originalStream = responseContext.getEntityStream();

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

import java.io.IOException;
import java.util.Objects;

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

/**
 * Responsefilter that prefixes all JSON responses with ")]}',\n" for security reasons.
 * 
 * @see https://docs.angularjs.org/api/ng/service/$http "JSON Vulnerability"
 */
@Provider
public class AngularJsonVulnerabilityProtectionInterceptor implements ContainerResponseFilter {

  @Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
      throws IOException {
    boolean mediaTypeJSON = MediaType.APPLICATION_JSON.equals(Objects.toString(responseContext.getMediaType()));
    if (mediaTypeJSON) {
      responseContext.getEntityStream().write(")]}',\n".getBytes("UTF-8"));
    }
  }
}

代码示例来源:origin: zalando/logbook

public LocalResponse(final ContainerResponseContext context) {
  this.stream = new TeeOutputStream(context.getEntityStream());
  context.setEntityStream(stream);
  this.context = context;
}

代码示例来源:origin: com.effektif/effektif-server

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext) throws IOException {
 final long id = this._id.incrementAndGet();
 final StringBuilder logMsg = new StringBuilder();
 logMsg
  .append("\n<<< ")
  .append(responseContext.getStatus())
  .append("\n");
 if (logHeaders) {
  logHeaders(logMsg, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
 }
 if (logEntity && responseContext.hasEntity()) {
  final OutputStream stream = new LoggingStream(logMsg, responseContext.getEntityStream());
  responseContext.setEntityStream(stream);
  requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
  // not calling log(b) here - it will be called by the interceptor
 } else {
  if (log.isDebugEnabled())
   log.debug(logMsg.toString());
 }
}

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

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext) throws IOException {
 final long id = this._id.incrementAndGet();
 final StringBuilder logMsg = new StringBuilder();
 logMsg
  .append("\n<<< ")
  .append(responseContext.getStatus())
  .append("\n");
 if (logHeaders) {
  logHeaders(logMsg, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
 }
 if (logEntity && responseContext.hasEntity()) {
  final OutputStream stream = new LoggingStream(logMsg, responseContext.getEntityStream());
  responseContext.setEntityStream(stream);
  requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
  // not calling log(b) here - it will be called by the interceptor
 } else {
  if (log.isDebugEnabled())
   log.debug(logMsg.toString());
 }
}

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

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext) throws IOException {
 final long id = this._id.incrementAndGet();
 final StringBuilder logMsg = new StringBuilder();
 logMsg
  .append("\n<<< ")
  .append(responseContext.getStatus())
  .append("\n");
 if (logHeaders) {
  logHeaders(logMsg, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
 }
 if (logEntity && responseContext.hasEntity()) {
  final OutputStream stream = new LoggingStream(logMsg, responseContext.getEntityStream());
  responseContext.setEntityStream(stream);
  requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
  // not calling log(b) here - it will be called by the interceptor
 } else {
  if (log.isDebugEnabled())
   log.debug(logMsg.toString());
 }
}

代码示例来源:origin: com.palantir.remoting3/jersey-servers

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
    throws IOException {
  if (isTooSmall(responseContext) || isEncoded(responseContext) || isUncompressable(responseContext)) {
    return;
  }
  List<String> headerLines = requestContext.getHeaders().get(HttpHeaders.ACCEPT_ENCODING);
  if (headerLines == null) {
    return;
  }
  List<String> acceptedEncodings = parsedHeaders.getUnchecked(headerLines);
  for (Encoding encoding : Encoding.values()) {
    if (acceptedEncodings.contains(encoding.encoding)) {
      MultivaluedMap<String, Object> headers = responseContext.getHeaders();
      // Set 'Vary: Accept-Encoding' so intermediate caches differentiate between differently
      // encoded responses
      headers.add(HttpHeaders.VARY, HttpHeaders.ACCEPT_ENCODING);
      headers.add(HttpHeaders.CONTENT_ENCODING, encoding.encoding);
      responseContext.setEntityStream(encoding.compressor.apply(responseContext.getEntityStream()));
      return;
    }
  }
}

代码示例来源:origin: com.github.docker-java/docker-java

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final long id = aid.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (printEntity && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

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

public class RangeResponseFilter implements ContainerResponseFilter {

  private static final String RANGE = "Range";

  private static final String ACCEPT_RANGES = "Accept-Ranges";

  @Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
      throws IOException {
    if (requestContext.getHeaders().containsKey(RANGE)) {
      String rangeHeader = requestContext.getHeaderString(RANGE);
      String contentType = responseContext.getMediaType().toString();
      OutputStream originOutputStream = responseContext.getEntityStream();
      RangedOutputStream rangedOutputStream = new RangedOutputStream(originOutputStream, rangeHeader, contentType, responseContext.getHeaders());
      responseContext.setStatus(Status.PARTIAL_CONTENT.getStatusCode());
      responseContext.getHeaders().putSingle(ACCEPT_RANGES, rangedOutputStream.getAcceptRanges());
      responseContext.setEntityStream(rangedOutputStream);
    }
  }

}

代码示例来源:origin: org.glassfish.jersey.core/jersey-common

@Override
  public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
      throws IOException {
    if (!logger.isLoggable(level)) {
      return;
    }
    final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
    final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();

    final StringBuilder b = new StringBuilder();

    printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
    printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());

    if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) {
      final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
      responseContext.setEntityStream(stream);
      requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
      // not calling log(b) here - it will be called by the interceptor
    } else {
      log(b);
    }
  }
}

代码示例来源:origin: com.eclipsesource.jaxrs/jersey-all

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
  final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (printEntity && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

代码示例来源:origin: hstaudacher/osgi-jax-rs-connector

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
  final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (printEntity && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

代码示例来源:origin: hstaudacher/osgi-jax-rs-connector

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
  final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (printEntity && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

代码示例来源:origin: com.blazebit/blaze-storage-rest-impl

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
  @SuppressWarnings("unchecked")
  ResponseObjectAwareMessageBodyWriter<Object> writer = (ResponseObjectAwareMessageBodyWriter<Object>) getMessageWriter(responseContext.getEntityClass());
  if (writer != null) {
    Object entity = responseContext.getEntity();
    Class<?> entityClass = responseContext.getEntityClass();
    int status = writer.getStatusCode(entity, entityClass);
    responseContext.setStatus(status);
    
    if (status == Status.NO_CONTENT.getStatusCode()) {
      writer.writeTo(entity, entityClass, null, null, responseContext.getMediaType(), responseContext.getHeaders(), responseContext.getEntityStream());
    }
  }
}

代码示例来源:origin: icode/ameba

/**
 * {@inheritDoc}
 */
@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
    throws IOException {
  final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
  final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();
  final StringBuilder b = new StringBuilder();
  requestContext.setProperty(LOGGER_BUFFER_PROPERTY, b);
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  if (printEntity && isSupportPrintType(responseContext.getMediaType()) && responseContext.hasEntity()) {
    final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  }
}

代码示例来源:origin: org.glassfish.jersey.bundles/jaxrs-ri

@Override
  public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
      throws IOException {
    if (!logger.isLoggable(level)) {
      return;
    }
    final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
    final long id = requestId != null ? (Long) requestId : _id.incrementAndGet();

    final StringBuilder b = new StringBuilder();

    printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
    printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());

    if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) {
      final OutputStream stream = new LoggingStream(b, responseContext.getEntityStream());
      responseContext.setEntityStream(stream);
      requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
      // not calling log(b) here - it will be called by the interceptor
    } else {
      log(b);
    }
  }
}

代码示例来源:origin: cd.connect.servlet/servlet-spring-jersey

@Override
public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext) throws IOException {
  String uri = requestContext.getUriInfo().getRequestUri().getPath();
  if (jerseyFiltering.excludeForUri(uri)) {
    return;
  }
  recordIncoming(requestContext, "responded");
  ConnectContext.set(Constants.REST_STATUS_CODE, Integer.toString(responseContext.getStatus()));
  Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY);
  long id = requestId != null ? (Long) requestId : _id.incrementAndGet();
  StringBuilder b = new StringBuilder();
  printResponseLine(b, "Server responded with a response", id, responseContext.getStatus());
  printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getStringHeaders());
  if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) {
    OutputStream stream = new BaseFilteringLogger.LoggingStream(b, responseContext.getEntityStream());
    responseContext.setEntityStream(stream);
    requestContext.setProperty(ENTITY_LOGGER_PROPERTY, stream);
    // not calling log(b) here - it will be called by the interceptor
  } else {
    log(b);
  }
}

相关文章