NAME Dancer::Plugin::Cerberus - Include geo, time zone, user-agent and throttling from App::Cerberus VERSION version 0.03 SYNOPSIS use Dancer::Plugin::Cerberus; get '/' => sub { my $time_zone = vars->{cerberus}{tz}{name}; }; DESCRIPTION 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. CONFIG The basic configuration ("servers" and "timeout") are passed to "new()" in App::Cerberus::Client. 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. 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 "vars" available in any route handler will contain a key "cerberus" with any data that App::Cerberus has returned, for instance: 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}; }; SEE ALSO * App::Cerberus * Plack::Middleware::Cerberus SUPPORT You can find documentation for this module with the perldoc command. perldoc Dancer::Plugin::Cerberus You can also look for information at: * GitHub * CPAN Ratings * Search MetaCPAN AUTHOR Clinton Gormley 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.