Requests, Responses, and Contexts
This part of the reference describes the OpenIG object model. The top-level objects are request, response, and contexts.
Attributes — context for arbitrary information
Description
Provides a map for arbitrary context information.
This is one of the contexts described in Contexts(5).
Client — HTTP client context information
Description
Provides information about the client sending the request.
This is one of the contexts described in Contexts(5).
Properties
"certificates": array-
List of X.509 certificates presented by the client
If the client does not present any certificates, OpenIG returns an empty list.
This is never
null. "isExternal": boolean-
True if the client connection is external.
"isSecure": boolean-
True if the client connection is secure.
"localAddress": string-
The IP address of the interface that received the request
"localPort": number-
The port of the interface that received the request
"remoteAddress": string-
The IP address of the client (or the last proxy) that sent the request
"remotePort": number-
The source port of the client (or the last proxy) that sent the request
"remoteUser": string-
The login of the user making the request, or
nullif unknownThis is likely to be
nullunless you have deployed OpenIG with a non-default deployment descriptor that secures the OpenIG web application. "userAgent": string-
The value of the User-Agent HTTP header in the request if any, otherwise
null
Contexts — HTTP request contexts
Description
The root object for request context information.
Contexts is a map of available contexts, which implement the Context interface. The contexts map’s keys are strings and the values are context objects. A context holds type-safe information useful for processing requests and responses. The contexts map is populated dynamically when creating bindings for evaluation of expressions and scripts.
All context objects have the following properties:
"contextName": string-
Name of the context.
"id": string-
Read-only string uniquely identifying the context object.
"rootContext": boolean-
True if the context object is a RootContext (has no parent).
"parent": Context object-
Parent of this context object.
Properties
The contexts object provides access to the following contexts:
"attributes": AttributesContext object-
Arbitrary state information.
OpenIG can use this to inject arbitrary state information into the context.
See also Attributes(5).
"client": ClientContext object-
Information about the client making the request.
See also Client(5).
"router": UriRouterContext object-
Routing information associated with the request.
See also UriRouterContext(5).
"session": SessionContext object-
Session context associated with the remote client.
See also Session(5).
Request — HTTP request
Properties
"method": string-
The method to be performed on the resource. Example:
"GET". "uri": object-
The fully-qualified URI of the resource being accessed. Example:
"http://www.example.com/resource.txt".See also URI(5).
"version": string-
Protocol version. Example:
"HTTP/1.1". "headers": object-
Exposes message header fields as name-value pairs, where name is header name and value is an array of header values.
"cookies": object-
Exposes incoming request cookies as name-value pairs, where name is cookie name and value is an array of string cookie values.
"form": object-
Exposes query parameters and/or
application/x-www-form-urlencodedentity as name-value pairs, where name is the field name and value is an array of string values. "entity": object-
The message entity body (no accessible properties).
Response — HTTP response
Properties
"cause": Exception object-
The cause of an error if the status code is in the range 4xx-5xx. Possibly null.
"status": Status object-
The response status.
For details, see Status(5).
"version": string-
Protocol version. Example:
"HTTP/1.1". "headers": object-
Exposes message header fields as name-value pairs, where name is header name and value is an array of header values.
"entity": object-
The message entity body (no accessible properties).
Session — HTTP session context
Description
Provides access to the HTTP session context.
This is one of the contexts described in Contexts(5).
Status — HTTP response status
Description
Represents an HTTP response status. For details, see RFC 7231: HTTP/1.1 Semantics and Content.
Properties
"code": integer-
Three-digit integer reflecting the HTTP status code.
"family": enum-
Family Enum value representing the class of response that corresponds to the code:
Family.INFORMATIONAL-
Status code reflects a provisional, informational response: 1xx.
Family.SUCCESSFUL-
The server received, understood, accepted and processed the request successfully. Status code: 2xx.
Family.REDIRECTION-
Status code indicates that the client must take additional action to complete the request: 3xx.
Family.CLIENT_ERROR-
Status code reflects a client error: 4xx.
Family.SERVER_ERROR-
Status code indicates a server-side error: 5xx.
Family.UNKNOWN-
Status code does not belong to one of the known families: 600+.
"reasonPhrase": string-
The human-readable reason-phrase corresponding to the status code.
For details, see RFC 7231: HTTP/1.1 Semantics and Content.
"isClientError": boolean-
True if Family.CLIENT_ERROR.
"isInformational": boolean-
True if Family.INFORMATIONAL.
"isRedirection": boolean-
True if Family.REDIRECTION.
"isServerError": boolean-
True if Family.SERVER_ERROR.
"isSuccessful": boolean-
True if Family.SUCCESSFUL.
URI — Uniform Resource Identifier
Properties
"scheme": string-
The scheme component of the URI, or
nullif the scheme is undefined. "authority": string-
The decoded authority component of the URI, or
nullif the authority is undefined.Use "rawAuthority" to access the raw (encoded) component.
"userInfo": string-
The decoded user-information component of the URI, or
nullif the user information is undefined.Use "rawUserInfo" to access the raw (encoded) component.
"host": string-
The host component of the URI, or
nullif the host is undefined. "port": number-
The port component of the URI, or
nullif the port is undefined. "path": string-
The decoded path component of the URI, or
nullif the path is undefined.Use "rawPath" to access the raw (encoded) component.
"query": string-
The decoded query component of the URI, or
nullif the query is undefined.Use "rawQuery" to access the raw (encoded) component.
"fragment": string-
The decoded fragment component of the URI, or
nullif the fragment is undefined.Use "rawFragment" to access the raw (encoded) component.
Router — HTTP request routing context information
Description
Provides context information related to HTTP request routing.
This is one of the contexts described in Contexts(5).
Properties
"matchedUri": string-
The portion of the request URI that matched the URI template.
"originalUri": URI-
The original target URI for the request, as received by the web container.
The value of this field is read-only.
"remainingUri": string-
The portion of the request URI that is remaining to be matched.
"uriTemplateVariables": map-
An unmodifiable Map where the keys and values are strings. The map contains the parsed URI template variables keyed on the URI template variable name.