Class PingOneProtectThreatLevelRoutingHandler

java.lang.Object
org.forgerock.openig.ping.protect.PingOneProtectThreatLevelRoutingHandler
All Implemented Interfaces:
Handler

public class PingOneProtectThreatLevelRoutingHandler extends Object implements 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"
         } ]
     }
 }
 
 
See Also:
  • Method Details

    • handle

      public Promise<Response,NeverThrowsException> handle(Context context, Request request)
      Description copied from interface: Handler
      Returns a 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).

      Specified by:
      handle in interface Handler
      Parameters:
      context - The request context.
      request - The request.
      Returns:
      A Promise representing the response to be returned to the caller.