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

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

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

ContainerRequestContext.setProperty介绍

[英]Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value.

A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface.

A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names.

If a null value is passed, the effect is the same as calling the #removeProperty(String) method.

In a Servlet container, the properties are synchronized with the ServletRequestand expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.
[中]将对象绑定到当前请求/响应交换上下文中的给定属性名。如果指定的名称已用于属性,则此方法将用新值替换属性的值。
属性允许JAX-RS过滤器和拦截器交换此接口尚未提供的其他自定义信息。
可以使用#getPropertyNames()检索受支持属性的列表。自定义属性名称应遵循与包名称相同的约定。
如果传递了null值,其效果与调用#removeProperty(String)方法相同。
在Servlet容器中,属性与ServletRequest同步,并公开ServletRequest中可用的所有属性。属性的任何修改也会反映在相关ServletRequest的属性集中。

代码示例

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

@Override
public void setAttribute(String name, Object value, int scope) {
  requestContext.setProperty(name, value);
}

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

@Override
public void filter(final ContainerRequestContext request) throws IOException {
  request.setProperty(RUNTIME_PROPERTY, currentTimeProvider.get());
}

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

@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
  requestContext.setProperty("metricsTimerContext", timer.time());
}

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

@Override
public void setAttributes(final ContainerRequestContext requestContext) {
  final RequestAttributes attributes;
  if (isWebApp) {
    final HttpServletRequest httpRequest = injectionManager.getInstance(HttpServletRequest.class);
    attributes = new JaxrsServletRequestAttributes(httpRequest, requestContext);
  } else {
    attributes = new JaxrsRequestAttributes(requestContext);
  }
  requestContext.setProperty(REQUEST_ATTRIBUTES_PROPERTY, attributes);
  RequestContextHolder.setRequestAttributes(attributes);
}

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

@Override
public void filter(final ContainerRequestContext context) throws IOException {
  if (!logger.isLoggable(level)) {
    return;
  }
  final long id = _id.incrementAndGet();
  context.setProperty(LOGGING_ID_PROPERTY, id);
  final StringBuilder b = new StringBuilder();
  printRequestLine(b, "Server has received a request", id, context.getMethod(), context.getUriInfo().getRequestUri());
  printPrefixedHeaders(b, id, REQUEST_PREFIX, context.getHeaders());
  if (context.hasEntity() && printEntity(verbosity, context.getMediaType())) {
    context.setEntityStream(
        logInboundEntity(b, context.getEntityStream(), MessageUtils.getCharset(context.getMediaType())));
  }
  log(b);
}

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

@Override
public void filter(final ContainerRequestContext context) throws IOException {
  if (!logger.isLoggable(level)) {
    return;
  }
  final long id = _id.incrementAndGet();
  context.setProperty(LOGGING_ID_PROPERTY, id);
  final StringBuilder b = new StringBuilder();
  printRequestLine(b, "Server has received a request", id, context.getMethod(), context.getUriInfo().getRequestUri());
  printPrefixedHeaders(b, id, REQUEST_PREFIX, context.getHeaders());
  if (context.hasEntity() && printEntity(verbosity, context.getMediaType())) {
    context.setEntityStream(
        logInboundEntity(b, context.getEntityStream(), MessageUtils.getCharset(context.getMediaType())));
  }
  log(b);
}

代码示例来源: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

@Override
public void filter(ContainerRequestContext request) {
  boolean closeParentSpan = false;
  SpanContext requestSpanContext = parentSpanContextProvider.get();
  if (null == requestSpanContext) {
    closeParentSpan = true;
    Span requestSpan = security().tracer().buildSpan("security-parent").start();
    request.setProperty(PROP_PARENT_SPAN, requestSpan);
    requestSpanContext = requestSpan.context();
  }
  request.setProperty(PROP_CLOSE_PARENT_SPAN, closeParentSpan);
  // create a new security context
  SecurityContext securityContext = security()
      .contextBuilder(Integer.toString(CONTEXT_COUNTER.incrementAndGet(), Character.MAX_RADIX))
      .tracingSpan(requestSpanContext)
      .executorService(executorService)
      .build();
  injectionManager.<Ref<SecurityContext>>getInstance((new GenericType<Ref<SecurityContext>>() { }).getType())
      .set(securityContext);
  if (featureConfig().shouldUsePrematchingAuthentication()) {
    doFilter(request, securityContext);
  }
}

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

@Override
public void filter(ContainerRequestContext requestContext) {
  if (!tracingEnabled(requestContext)) {
    return;
  }
  ServerRequest serverRequest = this.request.get();
  Tracer tracer = serverRequest.webServer().configuration().tracer();
  SpanContext parentSpan = TracingContext.get()
      .map(TracingContext::parentSpan)
      .orElseGet(serverRequest::spanContext);
  Tracer.SpanBuilder spanBuilder = tracer
      .buildSpan(spanName(requestContext))
      .asChildOf(parentSpan)
      .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER)
      .withTag(Tags.HTTP_METHOD.getKey(), requestContext.getMethod())
      .withTag(Tags.HTTP_URL.getKey(), requestContext.getUriInfo().getRequestUri().toString())
      .withTag(Tags.COMPONENT.getKey(), "jaxrs");
  configureSpan(spanBuilder);
  Span span = spanBuilder.start();
  requestContext.setProperty(SPAN_PROPERTY, span);
  // set the client tracing context
  TracingContext.compute(() -> TracingContext.create(tracer, requestContext.getHeaders()))
      .parentSpan(span.context());
}

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

securityContext.endpointConfig(ec);
request.setProperty(PROP_FILTER_CONTEXT, filterContext);

代码示例来源:origin: resteasy/Resteasy

protected void checkOrigin(ContainerRequestContext requestContext, String origin)
  {
   if (!allowedOrigins.contains("*") && !allowedOrigins.contains(origin))
   {
     requestContext.setProperty("cors.failure", true);
     throw new ForbiddenException(Messages.MESSAGES.originNotAllowed(origin));
   }
  }
}

代码示例来源:origin: resteasy/Resteasy

@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
  if (hasEntityParameter)
  {
   requestContext.setProperty(Verifier.class.getName(), create());
  }
  else
  {
   verify(requestContext, create());
  }
}

代码示例来源:origin: resteasy/Resteasy

request.setProperty(DO_NOT_CACHE_RESPONSE, true);
request.abortWith(builder.build());

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

@Override
public void filter(final ContainerRequestContext context) throws IOException {
  logbook.write(new RemoteRequest(context))
      .ifPresent(correlator ->
          context.setProperty(CORRELATOR, correlator));
}

代码示例来源:origin: apache/cxf

@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
  final TraceScopeHolder<TraceScope> holder = super.startTraceSpan(requestContext.getHeaders(),
    requestContext.getUriInfo().getRequestUri(), requestContext.getMethod());
  if (holder != null) {
    requestContext.setProperty(TRACE_SPAN, holder);
  }
}

代码示例来源:origin: apache/cxf

@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
  final TraceScopeHolder<TraceScope> holder = super.startTraceSpan(requestContext.getHeaders(),
    requestContext.getUriInfo().getRequestUri(), requestContext.getMethod());
  if (holder != null) {
    requestContext.setProperty(TRACE_SPAN, holder);
  }
}

代码示例来源:origin: apache/cxf

@Override
public void filter(ContainerRequestContext context) throws IOException {
  if (!"true".equals(context.getProperty("FirstPrematchingFilter"))) {
    throw new RuntimeException();
  }
  context.setProperty("DynamicPrematchingFilter", "true");
}

代码示例来源:origin: apache/cxf

@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
  if (requestContext.getUriInfo().getPath().endsWith("/blockAndThrowException")) {
    requestContext.setProperty("blocked", Boolean.TRUE);
    requestContext.abortWith(Response.ok().build());
  }
}

相关文章

微信公众号

最新文章

更多