Clinton Gormley > Plack-Middleware-Cerberus-0.04 > Plack::Middleware::Cerberus

Download:
Plack-Middleware-Cerberus-0.04.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.04   Source  

NAME ^

Plack::Middleware::Cerberus - Include geo, time zone, user-agent and throttling from App::Cerberus

VERSION ^

version 0.04

SYNOPSIS ^

    use Plack::Builder;

    my $app = sub {
        my $env = shift;
        my $time_zone = $env->{'plack.cerberus'}{tz}{name};
        ...
    };

    builder {
        enable 'Cerberus', servers => 'http://localhost:5001/';
        $app;
    };

DESCRIPTION ^

Plack::Middleware::Cerberus adds metadata from an App::Cerberus server to the $env as $env->{'plack.cerberus'}.

For instance:

It can also be configured to throttle or ban IP address ranges with App::Cerberus::Plugin::Throttle.

CONFIG ^

The basic configuration (servers and timeout) are passed to "new()" in App::Cerberus::Client.

    enable 'Cerberus',
        servers  => 'http://localhost:5001/',
        timeout  => 0.1;

Or

    enable 'Cerberus',
        servers  => [ 'http://host1:5001/', 'http://host2:5001/']
        timeout  => 0.1;

If you are using the App::Cerberus::Plugin::Throttle plugin, then you can also configure:

    enable 'Cerberus',
        servers => 'http://localhost:5001/',
        enforce => 1,
        log_as  => 'warn';

If log_as is one of debug, info, warn, error or fatal, then Throttle messages will be logged at that level. It defaults to warn. If no logger is configured, then log_as is ignored and it always warns.

If enforce is true, then banned IP addresses will receive a 403 Forbidden response and throttled users a 503 Service Unavailable response, with a Retry-After: $seconds header.

ACCESSING CERBERUS INFO ^

The $env variable will contain a key 'plack.cerberus' with any data that App::Cerberus has returned, for instance:

    my $app = sub {
        my $env        = shift;
        my $geo_info   = $env->{'plack.cerberus'}{geo};
        my $time_zone  = $env->{'plack.cerberus'}{tz};
        my $user_agent = $env->{'plack.cerberus'}{ua};
        my $throttle   = $env->{'plack.cerberus'}{throttle};
    };

SEE ALSO ^

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc Plack::Middleware::Cerberus

You can also look for information at:

AUTHOR ^

Clinton Gormley <drtech@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Clinton Gormley.

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

syntax highlighting: