Package org.forgerock.openig.handler
Class DispatchHandler
- java.lang.Object
-
- org.forgerock.openig.handler.DispatchHandler
-
- All Implemented Interfaces:
org.forgerock.http.Handler
public class DispatchHandler extends Object implements org.forgerock.http.Handler
Dispatches to one of a list of handlers. When a request is handled, each handler's condition is evaluated. If a condition expression yieldstrue, then the request is dispatched to the associated handler with no further processing.If no condition yields
truethen the handler will return a 404 not found response. Therefore, it's advisable to have a single "default" handler at the end of the list with no condition (unconditional) to handle otherwise un-dispatched requests.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDispatchHandler.HeapletCreates and initializes a dispatch handler in a heap environment.
-
Constructor Summary
Constructors Constructor Description DispatchHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DispatchHandleraddBinding(Expression<Boolean> condition, org.forgerock.http.Handler handler, URI baseURI)Binds an expression to the current handler to dispatch to.DispatchHandleraddUnconditionalBinding(org.forgerock.http.Handler handler, URI baseURI)Adds an unconditional bindings to the handler.org.forgerock.util.promise.Promise<org.forgerock.http.protocol.Response,org.forgerock.util.promise.NeverThrowsException>handle(org.forgerock.services.context.Context context, org.forgerock.http.protocol.Request request)
-
-
-
Method Detail
-
addBinding
public DispatchHandler addBinding(Expression<Boolean> condition, org.forgerock.http.Handler handler, URI baseURI)
Binds an expression to the current handler to dispatch to.- Parameters:
condition- Condition to evaluate to determine if associated handler should be dispatched to. If omitted, then dispatch is unconditional.handler- The name of the handler heap object to dispatch to if the associated condition yields true.baseURI- Overrides the existing request URI, making requests relative to a new base URI. Only scheme, host and port are used in the supplied URI. Default: leave URI untouched.- Returns:
- The current dispatch handler.
-
addUnconditionalBinding
public DispatchHandler addUnconditionalBinding(org.forgerock.http.Handler handler, URI baseURI)
Adds an unconditional bindings to the handler.- Parameters:
handler- The name of the handler heap object to dispatch to if the associated condition yields true.baseURI- Overrides the existing request URI, making requests relative to a new base URI. Only scheme, host and port are used in the supplied URI. Default: leave URI untouched.- Returns:
- The current dispatch handler.
-
handle
public org.forgerock.util.promise.Promise<org.forgerock.http.protocol.Response,org.forgerock.util.promise.NeverThrowsException> handle(org.forgerock.services.context.Context context, org.forgerock.http.protocol.Request request)- Specified by:
handlein interfaceorg.forgerock.http.Handler
-
-