Options
All
  • Public
  • Public/Protected
  • All
Menu

Handles all requests relevant for the entire IDP interaction, by sending them to either a matching InteractionRoute, or the generated Provider from the ProviderFactory if there is no match.

The InteractionRoutes handle all requests where we need custom behaviour, such as everything related to generating and validating an account. The Provider handles all the default request such as the initial handshake.

This handler handles all requests since it assumes all those requests are relevant for the IDP interaction. A RouterHandler should be used to filter out other requests.

Hierarchy

Index

Constructors

constructor

Properties

Private Readonly errorHandler

errorHandler: ErrorHandler

Private Readonly idpPath

idpPath: string

Private Readonly interactionCompleter

interactionCompleter: InteractionCompleter

Private Readonly interactionRoutes

interactionRoutes: InteractionRoute[]

Protected Readonly logger

logger: Logger = ...

Private Readonly providerFactory

providerFactory: ProviderFactory

Private Readonly responseWriter

responseWriter: ResponseWriter

Private Readonly templateHandler

templateHandler: TemplateHandler<Dict<any>>

Methods

canHandle

  • Checks if the input data can be handled by this class. Throws an error if it can't handle the data.

    Parameters

    Returns Promise<void>

    A promise resolving if the input can be handled, rejecting with an Error if not.

Private findRoute

Private getPromptMatch

Private getRouteMatch

handle

Private handleRequest

  • handleRequest(request: HttpRequest, response: ServerResponse): Promise<void>

handleSafe

  • Helper function that first runs the canHandle function followed by the handle function. Throws the error of the canHandle function if the data can't be handled, or returns the result of the handle function otherwise.

    Parameters

    Returns Promise<void>

    A promise resolving if the input can be handled, rejecting with an Error if not. Return value depends on the given type.

Private handleTemplateResponse

  • handleTemplateResponse(response: ServerResponse, templateFile: string, contents?: Dict<any>): Promise<void>

Private resolveRoute

  • Handles the behaviour of an InteractionRoute. Will error if the route does not support the given request.

    GET requests go to the templateHandler, POST requests to the specific InteractionHandler of the route.

    Parameters

    Returns Promise<void>