本文整理了Java中javax.ws.rs.container.ContainerRequestContext
类的一些代码示例,展示了ContainerRequestContext
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ContainerRequestContext
类的具体详情如下:
包路径:javax.ws.rs.container.ContainerRequestContext
类名称:ContainerRequestContext
[英]Container request filter context. A mutable class that provides request-specific information for the filter, such as request URI, message headers, message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific information.
[中]容器请求筛选器上下文。一个可变类,为筛选器提供特定于请求的信息,例如请求URI、消息头、消息实体或请求范围的属性。公开的setter允许修改公开的请求特定信息。
代码示例来源:origin: apache/drill
@Override
public void filter(ContainerRequestContext requestContext)
throws IOException {
final SecurityContext sc = requestContext.getSecurityContext();
if (!isUserLoggedIn(sc)) {
try {
final String destResource = URLEncoder.encode(
requestContext.getUriInfo().getRequestUri().toString(), "UTF-8");
final URI loginURI = requestContext.getUriInfo().getBaseUriBuilder()
.path(LogInLogOutPages.LOGIN_RESOURCE)
.queryParam(LogInLogOutPages.REDIRECT_QUERY_PARM, destResource)
.build();
requestContext
.abortWith(Response.temporaryRedirect(loginURI).build());
} catch (final Exception ex) {
final String errMsg = String.format(
"Failed to forward the request to login page: %s",
ex.getMessage());
LOG.error(errMsg, ex);
requestContext
.abortWith(Response.serverError().entity(errMsg).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: 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: 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: graphhopper/graphhopper
@Override
public void filter(ContainerRequestContext rc) {
String maybeType = rc.getUriInfo().getQueryParameters().getFirst("type");
if (maybeType != null && maybeType.equals("gpx")) {
rc.getHeaders().putSingle(HttpHeaders.ACCEPT, "application/gpx+xml");
}
}
代码示例来源:origin: jersey/jersey
@Override
public void filter(ContainerRequestContext ctx) throws IOException { // validate
if (!headerValue.equals(ctx.getHeaderString(headerName))) {
ctx.abortWith(Response.status(Response.Status.FORBIDDEN)
.type(MediaType.TEXT_PLAIN)
.entity(String.format("Expected header '%s' not present or value not equal to '%s'", headerName, headerValue))
.build());
}
}
代码示例来源:origin: apache/incubator-pinot
final String incomingReqUri = req.getUriInfo().getRequestUri().toString();
final String incomingBaseUri = req.getUriInfo().getBaseUri().toASCIIString();
try {
String baseUriWithoutSlash = incomingBaseUri;
URI newReqUri = new URI(baseUriWithoutSlash + "/" + relativeUri);
LOGGER
.warn("Rewriting new Request URI {} (incomingBaseUri = {}, incomingReqUri = {})", newReqUri.toString(),
incomingBaseUri, incomingReqUri);
req.setRequestUri(newReqUri);
String path = req.getUriInfo().getPath();
if ((req.getMethod().equalsIgnoreCase("PUT") || req.getMethod().equalsIgnoreCase("POST"))) {
String mediaType = modifiedContentType(path);
if (mediaType != null) {
req.getHeaders().remove(HttpHeaders.CONTENT_TYPE);
req.getHeaders().add(HttpHeaders.CONTENT_TYPE, mediaType);
代码示例来源:origin: oracle/helidon
URI requestUri = request.getUriInfo().getRequestUri();
String query = requestUri.getQuery();
String origRequest;
if ((null == query) || query.isEmpty()) {
origRequest = requestUri.getPath();
} else {
origRequest = requestUri.getPath() + "?" + query;
securityContext.endpointConfig(ec);
request.setProperty(PROP_FILTER_CONTEXT, filterContext);
request.setSecurityContext(new JerseySecurityContext(securityContext,
filterContext.getMethodSecurity(),
"https".equals(filterContext.getTargetUri().getScheme())));
代码示例来源:origin: org.springframework.boot/spring-boot-actuator
@Override
public Response apply(ContainerRequestContext request) {
Map<String, Link> links = this.linksResolver
.resolveLinks(request.getUriInfo().getAbsolutePath().toString());
return Response.ok(Collections.singletonMap("_links", links)).build();
}
代码示例来源:origin: jersey/jersey
@Override
public URL getRequestURL() {
try {
return context.getUriInfo().getRequestUri().toURL();
} catch (MalformedURLException ex) {
Logger.getLogger(OAuthServerRequest.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
代码示例来源: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 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: jersey/jersey
final UriInfo uriInfo = containerRequestContext.getUriInfo();
return Response.status(Response.Status.NOT_FOUND).build();
return Response.ok()
.type(MediaTypes.WADL_TYPE)
.allow(ModelProcessorUtil.getAllowedMethods(resource))
.header("Last-modified", lastModified)
.entity(bytes)
代码示例来源:origin: jersey/jersey
@Override
public void filter(final ContainerRequestContext rc) throws IOException {
final UriInfo uriInfo = rc.getUriInfo();
String path = uriInfo.getRequestUri().getRawPath();
if (path.indexOf('.') == -1) {
return;
final List<PathSegment> l = uriInfo.getPathSegments(false);
if (l.isEmpty()) {
return;
rc.getHeaders().putSingle(HttpHeaders.ACCEPT, accept.toString());
rc.getHeaders().putSingle(HttpHeaders.ACCEPT_LANGUAGE, acceptLanguage);
rc.setRequestUri(uriInfo.getRequestUriBuilder().replacePath(path).build());
代码示例来源:origin: jersey/jersey
@Override
public void filter(final ContainerRequestContext request) {
if (!request.getMethod().equalsIgnoreCase("POST")) {
return;
final String header = getParamValue(Source.HEADER, request.getHeaders(), "X-HTTP-Method-Override");
final String query = getParamValue(Source.QUERY, request.getUriInfo().getQueryParameters(), "_method");
request.setMethod(override);
if (override.equals("GET")) {
if (request.getMediaType() != null
&& MediaType.APPLICATION_FORM_URLENCODED_TYPE.getType().equals(request.getMediaType().getType())) {
final UriBuilder ub = request.getUriInfo().getRequestUriBuilder();
final Form f = ((ContainerRequest) request).readEntity(Form.class);
for (final Map.Entry<String, List<String>> param : f.asMap().entrySet()) {
ub.queryParam(param.getKey(), param.getValue().toArray());
request.setRequestUri(request.getUriInfo().getBaseUri(), ub.build());
代码示例来源: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: jersey/jersey
@Override
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
if (!response.hasEntity()) {
return;
List<String> varyHeader = response.getStringHeaders().get(HttpHeaders.VARY);
if (varyHeader == null || !varyHeader.contains(HttpHeaders.ACCEPT_ENCODING)) {
response.getHeaders().add(HttpHeaders.VARY, HttpHeaders.ACCEPT_ENCODING);
if (response.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING) != null) {
return;
List<String> acceptEncoding = request.getHeaders().get(HttpHeaders.ACCEPT_ENCODING);
代码示例来源:origin: traccar/traccar
@Override
public void filter(ContainerRequestContext requestContext) {
if (requestContext.getMethod().equals("OPTIONS")) {
return;
String authHeader = requestContext.getHeaderString(AUTHORIZATION_HEADER);
if (authHeader != null) {
requestContext.setSecurityContext(securityContext);
} else {
Method method = resourceInfo.getResourceMethod();
if (!method.isAnnotationPresent(PermitAll.class)) {
Response.ResponseBuilder responseBuilder = Response.status(Response.Status.UNAUTHORIZED);
if (!XML_HTTP_REQUEST.equals(request.getHeader(X_REQUESTED_WITH))) {
responseBuilder.header(WWW_AUTHENTICATE, BASIC_REALM);
throw new WebApplicationException(responseBuilder.build());
代码示例来源:origin: resteasy/Resteasy
private void handleGET(ContainerRequestContext request, String key)
List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes();
if (acceptableMediaTypes != null && acceptableMediaTypes.size() > 0)
entry = cache.get(key, acceptableMediaTypes.get(0), request.getHeaders());
entry = cache.get(key, MediaType.WILDCARD_TYPE, request.getHeaders());
if (builder != null)
request.abortWith(builder.cacheControl(cc).build());
return;
builder = Response.ok();
builder.entity(entry.getCached());
for (Map.Entry<String, List<Object>> header : entry.getHeaders().entrySet())
builder.cacheControl(cc);
request.setProperty(DO_NOT_CACHE_RESPONSE, true);
request.abortWith(builder.build());
代码示例来源: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);
}
}
}
}
内容来源于网络,如有侵权,请联系作者删除!