public class ScriptableHandler extends AbstractScriptableHeapObject implements Handler
globals
- the Map of global variables which persist across
successive invocations of the script
context
- the associated request context
request
- the HTTP request
http
- an HTTP client which may be used for
performing outbound HTTP requests
ldap
- an OpenIG LDAP client which may be used for
performing LDAP requests such as LDAP authentication
logger
- the OpenIG logger.
Contains also easy access to attributes
from the AttributesContext
,
e.g: attributes.user = "jackson"
, instead of contexts.attributes.attributes.user = "jackson"
.
In the same way, it gives access to session
from the SessionContext
,
for example, you can use: session.put(...)
, instead of contexts.session.session.put(...)
.
NOTE: at the moment only Groovy is supported.
NOTE: As of OpenIG 4.0, exchange.request
and exchange.response
are not set anymore.
Modifier and Type | Class and Description |
---|---|
static class |
ScriptableHandler.Heaplet
Creates and initializes a scriptable handler in a heap environment.
|
AbstractScriptableHeapObject.AbstractScriptableHeaplet
logger, storage
Modifier and Type | Method and Description |
---|---|
Promise<Response,NeverThrowsException> |
handle(Context context,
Request request)
|
runScript, setArgs, setClientHandler
getLogger, getStorage, setLogger, setStorage
public Promise<Response,NeverThrowsException> handle(Context context, Request request)
Handler
Promise
representing the asynchronous Response
of the given request
.
If any (asynchronous) processing goes wrong, the promise still contains a Response
(probably from the
4xx or 5xx status code family).
A handler that doesn't hand-off the processing to another downstream handler is responsible for creating the response.
The returned Promise
contains the response returned from the server as-is.
This is responsibility of the handler to produce the appropriate error response (404,
500, ...) in case of processing error.
Note: As of Promise 2.0 implementation, it is not permitted to throw any runtime exception here. Doing so produce unexpected behaviour (most likely a server-side hang of the processing thread).
Copyright 2011-2015 ForgeRock AS.