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: * 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. 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 * App::Cerberus * Dancer::Plugin::Cerberus SUPPORT You can find documentation for this module with the perldoc command. perldoc Plack::Middleware::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.