Class RequestFilterChain

  • All Implemented Interfaces:
    RequestFilter

    public final class RequestFilterChain
    extends Object
    implements RequestFilter
    Filters and/or transforms the request and/or response of an LDAP exchange, multiple filters version.
    • Method Detail

      • filterChain

        public static RequestFilterChain filterChain​(RequestFilter filter)
        Returns a new filter chain containing the single provided filter. Use {code then()} to append additional filters and a terminating handler.
        Parameters:
        filter - The filter to be converted into a filter chain.
        Returns:
        A new filter chain containing the single provided filter.
      • thenMaybe

        public RequestFilterChain thenMaybe​(boolean condition,
                                            RequestFilter next)
        Optionally concatenate a new filter to this filter.
        Parameters:
        condition - If true, next will be concatenated to this filter
        next - The filter to optionally concatenate with this one
        Returns:
        If condition is true, returns the concatenation of this filter and next. Otherwise, return this filter.
      • then

        public RequestFilterChain then​(RequestFilter next)
        Concatenate a transformer filter to this filter.
        Parameters:
        next - The transformer filter to add after this filter.
        Returns:
        A new RequestFilterChain results of the concatenation of this filter and the transformer filter
      • filter

        public Flowable<Response> filter​(org.forgerock.services.context.Context context,
                                         Request request,
                                         RequestHandler next)
                                  throws Exception
        Description copied from interface: RequestFilter
        Filters the request and/or response of an exchange. To pass the request to the next filter or handler in the chain, the filter calls next.handle(context, request).

        This method may elect not to pass the request to the next filter or handler, and instead handle the request itself. It can achieve this by merely avoiding a call to next.handle(context, request) and creating its own response object. The filter is also at liberty to replace a response with another of its own by intercepting the response returned by the next handler.

        Specified by:
        filter in interface RequestFilter
        Parameters:
        context - The request context.
        request - The request.
        next - The next filter or handler in the chain to handle the request.
        Returns:
        A Flowable representing the response to be returned to the client.
        Throws:
        Exception - If an error occurred during the processing of the request.