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::Role::Template - Role for template engines

VERSION

version 0.200000

DESCRIPTION

Any class that consumes this role will be able to be used as a template engine under Dancer2.

In order to implement this role, the consumer must implement the method render. This method will receive three arguments:

$self
$template
$tokens

Any template receives the following tokens, by default:

  • perl_version

    Current version of perl, effectively $^V.

  • dancer_version

    Current version of Dancer2, effectively <Dancer2-VERSION>>.

  • settings

    A hash of the application configuration.

  • request

    The current request object.

  • params

    A hash reference of all the parameters.

    Currently the equivalent of $request->params.

  • vars

    The list of request variables, which is what you would get if you called the vars keyword.

  • session

    The current session data, if a session exists.

ATTRIBUTES

name

The name of the template engine (e.g.: Simple).

charset

The charset. The default value is UTF-8.

default_tmpl_ext

The default file extension. If not provided, tt is used.

views

Path to the directory containing the views.

layout

Path to the directory containing the layouts.

layout_dir

Relative path to the layout directory.

Default: layouts.

engine

Contains the engine.

METHODS

view_pathname($view)

Returns the full path to the requested view.

layout_pathname($layout)

Returns the full path to the requested layout.

pathname_exists($pathname)

Returns true if the requested pathname exists. Can be used for either views or layouts:

$self->pathname_exists( $self->view_pathname( 'some_view' ) );
$self->pathname_exists( $self->layout_pathname( 'some_layout' ) );

render_layout($layout, \%tokens, \$content)

Render the layout with the applied tokens

apply_renderer($view, \%tokens)

apply_layout($content, \%tokens, \%options)

process($view, \%tokens, \%options)

METHODS

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 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.