Requests and responses
Request
An HTTP request message. Access the content of the request by using expressions.
Properties
"method": java.lang.String-
The HTTP method; for example,
GET. "uri": java.net.URI-
The fully-qualified URI of the resource being accessed; for example,
http://www.example.com/resource.txt. "version": java.lang.String-
The protocol version used for the request; for example,
HTTP/2. "headers": org.forgerock.http.protocol.Headers-
One or more headers in the request, with the format
header_name: [ header_value, … ]. The following example accesses the first value of the request headerUserId:pass:[${request.headers['UserId'][0]} "cookies": org.forgerock.http.protocol.RequestCookies-
Incoming request cookies, with the format
cookie_name: [ cookie_value, … ]. The following example accesses the first value of the request cookiemy-jwt:pass:[${request.cookies['my-jwt'][0].value} "entity": Entity-
The message body. The following example accesses the subject token from the request entity:
pass:[#{request.entity.form['subject_token'][0]}] "queryParams": Form-
Returns a copy of the query parameters decoded as a form. Modifications to the returned form are not reflected in the request.
Response
An HTTP response message. Access the content of the response by using expressions.
Properties
"cause": java.lang.Exception-
The cause of an error if the status code is in the range 4xx-5xx. Possibly null.
"status": Status-
The response status.
"version": java.lang.String-
The protocol version used the response; for example,
HTTP/2. "headers": org.forgerock.http.protocol.Headers-
One or more headers in the response. The following example accesses the first value of the response header
Content-Type:pass:[${response.headers['Content-Type'][0]}] "trailers": org.forgerock.http.protocol.Headers-
One or more trailers in the response. The following example accesses the first value of the response trailer
Content-Length:pass:[${response.trailers['Content-Length'][0]}] "entity": Entity-
The message entity body. The following example accesses the user ID from the response:
pass:[#{toString(response.entity.json['userId'])}]
Status
An HTTP response status.
Properties
"code": integer-
Three-digit integer reflecting the HTTP status code.
"family": enumeration-
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.
"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
Represents a Uniform Resource Identifier (URI) reference.
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.The query key and value is decoded. However, because a query value can be encoded more than once in a redirect chain, even though it is decoded it can contain unsafe ASCII characters. 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.