Class PingOneProtectThreatLevelRoutingHandler
java.lang.Object
org.forgerock.openig.ping.protect.PingOneProtectThreatLevelRoutingHandler
- All Implemented Interfaces:
Handler
The
PingOneProtectThreatLevelRoutingHandler
routes the request to one of the configured handlers, based on
the PingOneProtectEvaluationContext's level
, captured during
evaluation.
{
"type": "PingOneProtectThreatLevelRoutingHandler",
"config": {
"levels" : [ { array of maps [REQUIRED - Array of objects mapping an evaluation level to
a handler responsible for handling it.]
"level" : Config Expression<String> [REQUIRED - Evaluation level to match against.]
"handler" : Handler [REQUIRED - Handler responsible for handling this level.]
} ]
"fallbackHandler" : Handler [OPTIONAL - Handler called if the evaluation level does not
match any configured 'levels' - defaults to a
Forbidden (403) response.]
}
}
The example configuration below is configured to support evaluation levels "LOW", "MEDIUM" and "HIGH", routing the
request to the corresponding 'handler':
{
"name" : "evaluationRoutingHandler",
"type" : "PingOneProtectThreatLevelRoutingHandler",
"config" : {
"levels" : [ {
"level": "LOW",
"handler": "passthroughHandler"
}, {
"level": "MEDIUM",
"handler": "mediumRiskHandler"
}, {
"level": "HIGH",
"handler": "highRiskHandler"
} ]
}
}
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Creates and initialises aPingOneProtectThreatLevelRoutingHandler
in a heap environment. -
Method Summary
-
Method Details
-
handle
Description copied from interface:Handler
Returns aPromise
representing the asynchronousResponse
of the givenrequest
. If any (asynchronous) processing goes wrong, the promise still contains aResponse
(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).
-