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

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

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

ContainerRequestContext.getMethod介绍

[英]Get the request method.
[中]获取请求方法。

代码示例

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

@Override
public String getRequestMethod() {
  return context.getMethod();
}

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

/**
 * Name is generated from class and method as {http-method}:{fully-qualified-class-name}.{method-name}.
 *
 * @param requestContext context to extract information from
 * @return name of span to use
 */
public static String classMethodName(ContainerRequestContext requestContext) {
  Method m = getDefinitionMethod(requestContext);
  return requestContext.getMethod()
      + ":" + m.getDeclaringClass().getName()
      + "." + m.getName();
}

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

/**
 * Name is generated from path as {http-method}:{request-path}.
 *
 * @param requestContext context to extract information from
 * @return name of span to use
 */
public static String httpPathMethodName(ContainerRequestContext requestContext) {
  String path = requestContext.getUriInfo().getPath();
  if (!path.startsWith("/")) {
    path = "/" + path;
  }
  return requestContext.getMethod()
      + ":" + path;
}

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

@Override
  public void filter(ContainerRequestContext rc) throws IOException {
    if (!METHODS_TO_IGNORE.contains(rc.getMethod()) && !rc.getHeaders().containsKey(HEADER_NAME)) {
      throw new BadRequestException();
    }
  }
}

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

@Override
  public void filter(ContainerRequestContext rc) throws IOException {
    if (!METHODS_TO_IGNORE.contains(rc.getMethod()) && !rc.getHeaders().containsKey(HEADER_NAME)) {
      throw new BadRequestException();
    }
  }
}

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

/**
 * CORS request filter.
 * Hijack "preflight" OPTIONS requests before the Jersey resources get them.
 * The response will then pass through the CORS response filter on its way back out.
 */
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
  if (HttpMethod.OPTIONS.equals(requestContext.getMethod())) {
    Response.ResponseBuilder preflightResponse = Response.status(Response.Status.OK);
    if (requestContext.getHeaderString("Access-Control-Request-Headers") != null) {
      preflightResponse.header("Access-Control-Allow-Headers",
        requestContext.getHeaderString("Access-Control-Request-Headers"));
    }
    if (requestContext.getHeaderString("Access-Control-Request-Method") != null) {
      preflightResponse.header("Access-Control-Allow-Method", "GET,POST");
    }
    requestContext.abortWith(preflightResponse.build());
  }
}

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

@Override
 public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
   throws IOException {
  final String method = requestContext.getMethod();
  final String uri = requestContext.getUriInfo().getRequestUri().toString();
  final int respStatus = responseContext.getStatus();
  final String reasonPhrase = responseContext.getStatusInfo().getReasonPhrase();
  final String srcIpAddr = request.get().getRemoteAddr();
  final String contentType = requestContext.getHeaderString(HttpHeaders.CONTENT_TYPE);
  LOGGER.info("Handled request from {} {} {}, content-type {} status code {} {}", srcIpAddr, method, uri, contentType,
    respStatus, reasonPhrase);
 }
}

代码示例来源: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: 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");
    }
  }
}

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

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    if (LOG.isDebugEnabled()) {
      try {
        final String rawQuery = requestContext.getUriInfo().getRequestUri().getRawQuery();
        final Date requestDate = requestContext.getDate();
        final String userName = RestTools.getUserNameFromRequest(requestContext);
        final String remoteAddress = RestTools.getRemoteAddrFromRequest(response.getRequest(), trustedProxies);
        final String userAgent = requestContext.getHeaderString(HttpHeaders.USER_AGENT);

        LOG.debug("{} {} [{}] \"{} {}{}\" {} {} {}",
            remoteAddress,
            userName == null ? "-" : userName,
            (requestDate == null ? "-" : requestDate),
            requestContext.getMethod(),
            requestContext.getUriInfo().getPath(),
            (rawQuery == null ? "" : "?" + rawQuery),
            (userAgent == null ? "-" : userAgent),
            responseContext.getStatus(),
            responseContext.getLength());
      } catch (Exception e) {
        LOG.error("Error while processing REST API access log", e);
      }
    }
  }
}

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

@Override
public void filter(final ContainerRequestContext context) throws IOException {
  final long id = aid.incrementAndGet();
  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 (printEntity && context.hasEntity()) {
    context.setEntityStream(logInboundEntity(b, context.getEntityStream()));
  }
  log(b);
}

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

@Override
  public void filter(ContainerRequestContext requestContext) throws IOException {
    final SecurityContext securityContext = requestContext.getSecurityContext();
    if (securityContext instanceof ShiroSecurityContext) {
      final ShiroSecurityContext context = (ShiroSecurityContext) securityContext;
      final String userName = RestTools.getUserNameFromRequest(requestContext);
      final ContextAwarePermissionAnnotationHandler annotationHandler = new ContextAwarePermissionAnnotationHandler(context);
      final String[] requiredPermissions = annotation.value();
      try {
        LOG.debug("Checking authorization for user [{}], needs permissions: {}", userName, requiredPermissions);
        annotationHandler.assertAuthorized(annotation);
      } catch (AuthorizationException e) {
        LOG.info("Not authorized. User <{}> is missing permissions {} to perform <{} {}>",
            userName, Arrays.toString(requiredPermissions), requestContext.getMethod(), requestContext.getUriInfo().getPath());
        throw new ForbiddenException("Not authorized");
      }
    } else {
      throw new ForbiddenException();
    }
  }
}

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

@Override
public void filter(final ContainerRequestContext request) {
  if (!request.getMethod().equalsIgnoreCase("POST")) {
    return;

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

@Override
public void filter(final ContainerRequestContext request) {
  if (!request.getMethod().equalsIgnoreCase("POST")) {
    return;

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

@Override
protected FilterContext initRequestFiltering(ContainerRequestContext requestContext) {
  FilterContext context = new FilterContext();
  Method definitionMethod = getDefinitionMethod(requestContext);
  if (definitionMethod == null) {
    // this will end in 404, just let it on
    context.setShouldFinish(true);
    return context;
  }
  context.setMethodSecurity(getMethodSecurity(definitionMethod));
  context.setResourceName(definitionMethod.getDeclaringClass().getSimpleName());
  context.setMethod(requestContext.getMethod());
  context.setHeaders(HttpUtil.toSimpleMap(requestContext.getHeaders()));
  context.setTargetUri(requestContext.getUriInfo().getRequestUri());
  context.setResourcePath(context.getTargetUri().getPath());
  context.setJerseyRequest((ContainerRequest) requestContext);
  // now extract headers
  featureConfig().getQueryParamHandlers()
      .forEach(handler -> handler.extract(uriInfo, context.getHeaders()));
  return context;
}

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

@Override
protected SecurityFilter.FilterContext initRequestFiltering(ContainerRequestContext requestContext) {
  SecurityFilter.FilterContext context = new SecurityFilter.FilterContext();
  // this is a pre-matching filter, so no method or class security
  SecurityDefinition methodDef = new SecurityDefinition(false);
  methodDef.requiresAuthentication(true);
  methodDef.setRequiresAuthorization(featureConfig().shouldUsePrematchingAuthorization());
  context.setMethodSecurity(methodDef);
  context.setResourceName("jax-rs");
  context.setMethod(requestContext.getMethod());
  context.setHeaders(HttpUtil.toSimpleMap(requestContext.getHeaders()));
  context.setTargetUri(requestContext.getUriInfo().getRequestUri());
  context.setResourcePath(context.getTargetUri().getPath());
  context.setJerseyRequest((ContainerRequest) requestContext);
  // now extract headers
  featureConfig().getQueryParamHandlers()
      .forEach(handler -> handler.extract(uriInfo, context.getHeaders()));
  return context;
}

相关文章

微信公众号

最新文章

更多