Security Advisories (1)
CPANSA-Dancer2-2018-01 (2018-01-30)

There is a potential RCE with regards to Storable. We have added session ID validation to the session engine so that session backends based on Storable can reject malformed session IDs that may lead to exploitation of the RCE.

NAME

Dancer2::Core::Dispatcher - Class for dispatching request to the appropriate route handler

VERSION

version 0.13

SYNOPSIS

use Dancer2::Core::Dispatcher;

# Create an instance of dispatcher
my $dispatcher = Dancer2::Core::Dispatcher->new( apps => [$app] );

# Dispatch a request
my $resp = $dispatcher->dispatch($env)->to_psgi;

# Capture internal error of a response (if any) after a dispatch
$dispatcher->response_internal_error($context, $error);

# Capture response not found for an application the after dispatch
$dispatcher->response_not_found($context);

ATTRIBUTES

apps

The apps is an array reference to Dancer2::Core::App.

default_content_type

The default_content_type is a string which represents the context of the request. This attribute is read-only.

METHODS

dispatch

The dispatch method accepts the list of applications, hash reference for the env attribute of Dancer2::Core::Request and optionally the request object and a context object as input arguments.

dispatch returns a response object of Dancer2::Core::Response.

Any before hook and matched route code is wrapped using Return::MultiLevel to allow DSL keywords such as forward and redirect to short-circuit remaining code without having to throw an exception. Return::MultiLevel will use Scope::Upper (an XS module) if it is available.

response_internal_error

The response_internal_error takes as input the list of applications and a variable error and returns an object of Dancer2::Core::Error.

response_not_found

The response_not_found consumes as input the list of applications and an object of type Dancer2::Core::Context and returns an object Dancer2::Core::Error.

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.