public class ContainerRequest extends java.lang.Object implements HttpRequestContext
WebApplication.
By default the implementation of SecurityContext will throw
UnsupportedOperationException if the methods are invoked.
Containers SHOULD use the method setSecurityContext(javax.ws.rs.core.SecurityContext)
to define security context behaviour rather than extending from this class
and overriding the methods.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
VARY_HEADER |
ACCEPT, ACCEPT_CHARSET, ACCEPT_ENCODING, ACCEPT_LANGUAGE, AUTHORIZATION, CACHE_CONTROL, CONTENT_ENCODING, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_TYPE, COOKIE, DATE, ETAG, EXPIRES, HOST, IF_MATCH, IF_MODIFIED_SINCE, IF_NONE_MATCH, IF_UNMODIFIED_SINCE, LAST_MODIFIED, LOCATION, SET_COOKIE, USER_AGENT, VARY, WWW_AUTHENTICATEBASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH| Constructor and Description |
|---|
ContainerRequest(WebApplication wa,
java.lang.String method,
java.net.URI baseUri,
java.net.URI requestUri,
InBoundHeaders headers,
java.io.InputStream entity)
Create a new container request.
|
| Modifier and Type | Method and Description |
|---|---|
Response.ResponseBuilder |
evaluatePreconditions()
Evaluate request preconditions for a resource that does not currently
exist.
|
Response.ResponseBuilder |
evaluatePreconditions(java.util.Date lastModified)
Evaluate request preconditions based on the passed in value.
|
Response.ResponseBuilder |
evaluatePreconditions(java.util.Date lastModified,
EntityTag eTag)
Evaluate request preconditions based on the passed in value.
|
Response.ResponseBuilder |
evaluatePreconditions(EntityTag eTag)
Evaluate request preconditions based on the passed in value.
|
java.net.URI |
getAbsolutePath()
Get the absolute path of the request.
|
UriBuilder |
getAbsolutePathBuilder()
Get the absolute path of the request in the form of a UriBuilder.
|
java.util.List<java.util.Locale> |
getAcceptableLanguages()
Get a list of languages that are acceptable for the response.
|
MediaType |
getAcceptableMediaType(java.util.List<MediaType> mediaTypes)
Select the first media type, from a list of media types, that is most
acceptable according to the requested acceptable media types.
|
java.util.List<MediaType> |
getAcceptableMediaTypes()
Get a list of media types that are acceptable for the response.
|
java.util.List<MediaType> |
getAcceptableMediaTypes(java.util.List<QualitySourceMediaType> priorityMediaTypes)
Get a list of media types that are acceptable for the response.
|
java.lang.String |
getAuthenticationScheme()
Returns the string value of the authentication scheme used to protect
the resource.
|
java.net.URI |
getBaseUri()
Get the base URI of the application.
|
UriBuilder |
getBaseUriBuilder()
Get the base URI of the application in the form of a UriBuilder.
|
MultivaluedMap<java.lang.String,java.lang.String> |
getCookieNameValueMap()
Get the cookie name value map.
|
java.util.Map<java.lang.String,Cookie> |
getCookies()
Get any cookies that accompanied the request.
|
<T> T |
getEntity(java.lang.Class<T> type)
Get the request entity, returns null if the request does not
contain an entity body.
|
<T> T |
getEntity(java.lang.Class<T> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] as)
Get the request entity, returns null if the request does not
contain an entity body.
|
java.io.InputStream |
getEntityInputStream()
Get the input stream of the entity.
|
Form |
getFormParameters()
Get the form parameters of the request entity.
|
java.lang.String |
getHeaderValue(java.lang.String name)
Get a HTTP header value.
|
java.util.Locale |
getLanguage()
Get the language of the request entity
|
MediaType |
getMediaType()
Get the media type of the request entity
|
MessageBodyWorkers |
getMessageBodyWorkers()
Get the message body workers.
|
java.lang.String |
getMethod()
Get the request method, e.g.
|
java.lang.String |
getPath()
Get the path of the current request relative to the base URI as
a string.
|
java.lang.String |
getPath(boolean decode)
Get the path of the current request relative to the base URI as
a string.
|
java.util.List<PathSegment> |
getPathSegments()
Get the path of the current request relative to the base URI as a
list of
PathSegment. |
java.util.List<PathSegment> |
getPathSegments(boolean decode)
Get the path of the current request relative to the base URI as a
list of
PathSegment. |
java.util.Map<java.lang.String,java.lang.Object> |
getProperties()
Get the mutable properties.
|
MultivaluedMap<java.lang.String,java.lang.String> |
getQueryParameters()
Get the URI query parameters of the current request.
|
MultivaluedMap<java.lang.String,java.lang.String> |
getQueryParameters(boolean decode)
Get the URI query parameters of the current request.
|
java.util.List<java.lang.String> |
getRequestHeader(java.lang.String name)
Get the values of a HTTP request header.
|
MultivaluedMap<java.lang.String,java.lang.String> |
getRequestHeaders()
Get the values of HTTP request headers.
|
java.net.URI |
getRequestUri()
Get the absolute request URI.
|
UriBuilder |
getRequestUriBuilder()
Get the absolute request URI in the form of a UriBuilder.
|
SecurityContext |
getSecurityContext()
Get the security context.
|
java.security.Principal |
getUserPrincipal()
Returns a
java.security.Principal object containing the
name of the current authenticated user. |
boolean |
isSecure()
Returns a boolean indicating whether this request was made
using a secure channel, such as HTTPS.
|
boolean |
isTracingEnabled()
Check if tracing is enabled.
|
boolean |
isUserInRole(java.lang.String role)
Returns a boolean indicating whether the authenticated user is included
in the specified logical "role".
|
Variant |
selectVariant(java.util.List<Variant> variants)
Select the representation variant that best matches the request.
|
<T> void |
setEntity(java.lang.Class<T> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<java.lang.String,java.lang.Object> httpHeaders,
T entity)
Set the request entity.
|
void |
setEntityInputStream(java.io.InputStream entity)
Set the input stream of the entity.
|
void |
setHeaders(InBoundHeaders headers)
Set the request headers.
|
void |
setMethod(java.lang.String method)
Set the HTTP method.
|
void |
setSecurityContext(SecurityContext securityContext)
Set the security context.
|
void |
setUris(java.net.URI baseUri,
java.net.URI requestUri)
Set the base and request URI.
|
void |
trace(java.lang.String message)
Add a trace message.
|
public static final java.lang.String VARY_HEADER
public ContainerRequest(WebApplication wa, java.lang.String method, java.net.URI baseUri, java.net.URI requestUri, InBoundHeaders headers, java.io.InputStream entity)
wa - the web applicationmethod - the HTTP methodbaseUri - the base URI of the requestrequestUri - the request URIheaders - the request headersentity - the InputStream of the request entitypublic java.util.Map<java.lang.String,java.lang.Object> getProperties()
public void setMethod(java.lang.String method)
method - the method.public void setUris(java.net.URI baseUri,
java.net.URI requestUri)
baseUri - the base URI.requestUri - the (complete) request URI.public java.io.InputStream getEntityInputStream()
public void setEntityInputStream(java.io.InputStream entity)
entity - the input stream of the entity.public void setHeaders(InBoundHeaders headers)
headers - the request headers.public void setSecurityContext(SecurityContext securityContext)
securityContext - the security context.public SecurityContext getSecurityContext()
public MessageBodyWorkers getMessageBodyWorkers()
public boolean isTracingEnabled()
TraceableisTracingEnabled in interface Traceablepublic void trace(java.lang.String message)
Traceable
A trace message will be added if Traceable.isTracingEnabled() returns
true and tracing contraints are satisfied.
public java.net.URI getBaseUri()
HttpRequestContextgetBaseUri in interface HttpRequestContextpublic UriBuilder getBaseUriBuilder()
HttpRequestContextgetBaseUriBuilder in interface HttpRequestContextpublic java.net.URI getRequestUri()
HttpRequestContextgetRequestUri in interface HttpRequestContextpublic UriBuilder getRequestUriBuilder()
HttpRequestContextgetRequestUriBuilder in interface HttpRequestContextpublic java.net.URI getAbsolutePath()
HttpRequestContexturiInfo.getBase().resolve(uriInfo.getPath()).getAbsolutePath in interface HttpRequestContextpublic UriBuilder getAbsolutePathBuilder()
HttpRequestContextgetAbsolutePathBuilder in interface HttpRequestContextpublic java.lang.String getPath()
HttpRequestContextgetPath(true).getPath in interface HttpRequestContextpublic java.lang.String getPath(boolean decode)
HttpRequestContextgetPath in interface HttpRequestContextdecode - controls whether sequences of escaped octets are decoded
(true) or not (false).public java.util.List<PathSegment> getPathSegments()
HttpRequestContextPathSegment. This method is useful when the
path needs to be parsed, particularly when matrix parameters may be
present in the path. All sequences of escaped octets in path segments
and matrix parameter names and values are decoded,
equivalent to getPathSegments(true).getPathSegments in interface HttpRequestContextPathSegment. The matrix parameter
map of each path segment is also unmodifiable.PathSegment,
Matrix URIspublic java.util.List<PathSegment> getPathSegments(boolean decode)
HttpRequestContextPathSegment. This method is useful when the
path needs to be parsed, particularly when matrix parameters may be
present in the path.getPathSegments in interface HttpRequestContextdecode - controls whether sequences of escaped octets in path segments
and matrix parameter names and values are decoded (true) or not (false).PathSegment. The matrix parameter
map of each path segment is also unmodifiable.PathSegment,
Matrix URIspublic MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters()
HttpRequestContextgetQueryParameters(true).getQueryParameters in interface HttpRequestContextpublic MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters(boolean decode)
HttpRequestContextgetQueryParameters in interface HttpRequestContextdecode - controls whether sequences of escaped octets in parameter
names and values are decoded (true) or not (false).public java.lang.String getHeaderValue(java.lang.String name)
HttpRequestContextgetHeaderValue in interface HttpRequestContextname - the HTTP headerpublic <T> T getEntity(java.lang.Class<T> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] as)
HttpRequestContextgetEntity in interface HttpRequestContexttype - the type of entitygenericType - type the generic type of entity, it is the responsibility
of the callee to ensure that the type and generic type are
consistent otherwise the behaviour of this method is undefined.as - the annotations associated with the typepublic <T> void setEntity(java.lang.Class<T> type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<java.lang.String,java.lang.Object> httpHeaders,
T entity)
type - the class of object that is to be written.genericType - the type of object to be written, obtained either
by reflection of a resource method return type or by inspection
of the returned instance. GenericEntity
provides a way to specify this information at runtime.annotations - an array of the annotations on the resource
method that returns the object.mediaType - the media type of the HTTP entity.httpHeaders - a mutable map of the HTTP response headers.entity - the entity instance to write.MappableContainerException - encapsulates exceptions thrown while
serializing the entity.public <T> T getEntity(java.lang.Class<T> type)
HttpRequestContextgetEntity in interface HttpRequestContexttype - the type of entitypublic MediaType getAcceptableMediaType(java.util.List<MediaType> mediaTypes)
HttpRequestContextgetAcceptableMediaType in interface HttpRequestContextmediaTypes - the list of media typespublic java.util.List<MediaType> getAcceptableMediaTypes(java.util.List<QualitySourceMediaType> priorityMediaTypes)
HttpRequestContextgetAcceptableMediaTypes in interface HttpRequestContextpriorityMediaTypes - the list of media types that take priority,
ordered according to the quality source parameter, "qs" as the
primary key.public MultivaluedMap<java.lang.String,java.lang.String> getCookieNameValueMap()
HttpRequestContextgetCookieNameValueMap in interface HttpRequestContextpublic Form getFormParameters()
HttpRequestContextThis method will ensure that the request entity is buffered such that it may be consumed by the application.
getFormParameters in interface HttpRequestContextpublic MultivaluedMap<java.lang.String,java.lang.String> getRequestHeaders()
HttpHeadersgetRequestHeaders in interface HttpHeaderspublic java.util.List<java.lang.String> getRequestHeader(java.lang.String name)
HttpHeadersgetRequestHeaders().get(name).getRequestHeader in interface HttpHeadersname - the header name, case insensitivepublic java.util.List<MediaType> getAcceptableMediaTypes()
HttpHeadersgetAcceptableMediaTypes in interface HttpHeaderspublic java.util.List<java.util.Locale> getAcceptableLanguages()
HttpHeadersgetAcceptableLanguages in interface HttpHeaderspublic MediaType getMediaType()
HttpHeadersgetMediaType in interface HttpHeaderspublic java.util.Locale getLanguage()
HttpHeadersgetLanguage in interface HttpHeaderspublic java.util.Map<java.lang.String,Cookie> getCookies()
HttpHeadersgetCookies in interface HttpHeaderspublic java.lang.String getMethod()
RequestgetMethod in interface RequestHttpMethodpublic Variant selectVariant(java.util.List<Variant> variants)
RequestselectVariant in interface Requestvariants - a list of Variant that describe all of the
available representation variants.Variant.VariantListBuilderpublic Response.ResponseBuilder evaluatePreconditions()
RequestNote that both preconditions If-None-Match: * and
If-None-Match: something will always be considered to
have been met and it is the applications responsibility
to enforce any additional method-specific semantics. E.g. a
PUT on a resource that does not exist might succeed whereas
a GET on a resource that does not exist would likely result
in a 404 response. It would be the responsibility of the application to
generate the 404 response.
evaluatePreconditions in interface Requestpublic Response.ResponseBuilder evaluatePreconditions(EntityTag eTag)
RequestevaluatePreconditions in interface RequesteTag - an ETag for the current state of the resourcepublic Response.ResponseBuilder evaluatePreconditions(java.util.Date lastModified)
RequestevaluatePreconditions in interface RequestlastModified - a date that specifies the modification date of the resourcepublic Response.ResponseBuilder evaluatePreconditions(java.util.Date lastModified, EntityTag eTag)
RequestevaluatePreconditions in interface RequestlastModified - a date that specifies the modification date of the resourceeTag - an ETag for the current state of the resourcepublic java.security.Principal getUserPrincipal()
SecurityContextjava.security.Principal object containing the
name of the current authenticated user. If the user
has not been authenticated, the method returns null.getUserPrincipal in interface SecurityContextjava.security.Principal containing the name
of the user making this request; null if the user has not been
authenticatedpublic boolean isUserInRole(java.lang.String role)
SecurityContextfalse.isUserInRole in interface SecurityContextrole - a String specifying the name of the roleboolean indicating whether the user making
the request belongs to a given role; false if the user
has not been authenticatedpublic boolean isSecure()
SecurityContextisSecure in interface SecurityContexttrue if the request was made using a secure
channel, false otherwisepublic java.lang.String getAuthenticationScheme()
SecurityContextgetAuthenticationScheme in interface SecurityContextCopyright © 2016 Oracle Corporation. All Rights Reserved.