ASP4::RequestFilter - Filter incoming requests
package My::MemberFilter; use strict; use warnings 'all'; use base 'ASP4::RequestFilter'; use vars __PACKAGE__->VARS; sub run { my ($self, $context) = @_; if( $Session->{is_logged_in} ) { # The user is logged in - we can ignore this request: return $Response->Declined; } else { # The user must authenticate first: $Session->{validation_errors} = { general => "You must log in first" }; return $Response->Redirect("/login/"); }# end if() } 1;# return true:
Then, in your asp4-config.json:
asp4-config.json
{ ... "web": { ... "request_filters": [ { "uri_match": "/regexp/to/(path|place).*?", "class" "My::MemberFilter" }, { "uri_match": "/regexp/to/(some|other|area).*?", "class" "My::OtherFilter" } ] ... }, ... }
Subclass ASP4::RequestFilter to instantly apply rules to incoming requests.
ASP4::RequestFilter
These RequestFilters also work for testing via ASP4::API.
IMPORTANT: Return -1 (or $Response->Declined) to allow the current RequestFilter to be ignored.
-1
Returning anything else...
return $Response->Redirect("/unauthorized/");
...results in the termination of the current request right away.
It's possible that some bugs have found their way into this release.
Use RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=ASP4 to submit bug reports.
Please visit the ASP4 homepage at http://0x31337.org/code/ to see examples of ASP4 in action.
To install ASP4, copy and paste the appropriate command in to your terminal.
cpanm
cpanm ASP4
CPAN shell
perl -MCPAN -e shell install ASP4
For more information on module installation, please visit the detailed CPAN module installation guide.