Class ResourceHandler

java.lang.Object
org.forgerock.openig.handler.resources.ResourceHandler
All Implemented Interfaces:
Handler

public class ResourceHandler extends Object implements Handler
A ResourceHandler is a handler that serves static content (content of a directory, or a zip).

It's using the remaining URL information provided by the UriRouterContext to determine the resource path to look for. Configuration options:

 
 {
      "type": "ResourceHandler",
          "config": {
              "directories"            : array of strings,   [REQUIRED - the list of directories to be searched when
                                                                         looking up static content to be served.]
              "basePath"               : string,             [OPTIONAL - default to "", required if the route
                                                                         is anything other than /.]
              "welcomePages"           : array of strings,   [OPTIONAL - default to empty list. Represents a set of
                                                                         static content that should be served from
                                                                         one of the specified directories when no
                                                                         specific resource is requested.]
          }
 }
 

 
For example:
 
 {
     "type": "ResourceHandler",
     "name": "StaticWebsite",
     "config": {
         "directories"            : ["/path/to/static/pages"],
         "basePath"               : "website",
         "welcomePages"           : ["index.html"]
     }
 }
 
 
  • Constructor Details

    • ResourceHandler

      public ResourceHandler(Factory<Buffer> storage, List<ResourceSet> sets, List<String> welcomePages)
      Creates a new ResourceHandler with the given sets of ResourceSet and the list of welcome pages mappings.
      Parameters:
      storage - the temporary storage to use to stream the resource
      sets - provide access to Resource.
      welcomePages - the list of resources name to be searched if there is no remaining path to use in the request.
  • 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.