Dancer::Plugin::Cerberus - Include geo, time zone, user-agent and throttling from App::Cerberus
version 0.03
use Dancer::Plugin::Cerberus; get '/' => sub { my $time_zone = vars->{cerberus}{tz}{name}; };
This plugin adds metadata from an App::Cerberus server to the vars before your route handlers are called.
For instance:
Geo-location
Time zone
User-agent info
Are they a spider?
Are they making too many requests? Should we throttle them?
It can also be configured to throttle or ban IP address ranges with App::Cerberus::Plugin::Throttle.
The basic configuration (servers and timeout) are passed to "new()" in App::Cerberus::Client.
servers
timeout
plugins: Cerberus: servers: http://localhost:5001/
Or
plugins: 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:
plugins: Cerberus: servers: http://localhost:5001/ throttle: log_as: info enforce: 0 | 1
If log_as is one of core, info, warn, debug or error, then Throttle messages will be logged at that level.
log_as
core
info
warn
debug
error
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.
enforce
403 Forbidden
503 Service Unavailable
Retry-After: $seconds
The vars available in any route handler will contain a key cerberus with any data that App::Cerberus has returned, for instance:
vars
cerberus
get '/' => sub { my $geo_info = vars->{cerberus}{geo}; my $time_zone = vars->{cerberus}{tz}; my $user_agent = vars->{cerberus}{ua}; my $throttle = vars->{cerberus}{throttle}; };
App::Cerberus
Plack::Middleware::Cerberus
You can find documentation for this module with the perldoc command.
perldoc Dancer::Plugin::Cerberus
You can also look for information at:
GitHub
http://github.com/clintongormley/Dancer-Plugin-Cerberus
CPAN Ratings
http://cpanratings.perl.org/d/Dancer-Plugin-Cerberus
Search MetaCPAN
https://metacpan.org/module/Dancer::Plugin::Cerberus
Clinton Gormley <drtech@cpan.org>
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.
To install Dancer::Plugin::Cerberus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Dancer::Plugin::Cerberus
CPAN shell
perl -MCPAN -e shell install Dancer::Plugin::Cerberus
For more information on module installation, please visit the detailed CPAN module installation guide.