Author: jkaluza
Date: Wed Feb 20 11:43:14 2013
New Revision: 1448100
URL: http://svn.apache.org/r1448100
Log:
* t/response/TestAPI/access2.pm: Port the test to new authz/authn API introduced
in httpd-2.4
Modified:
perl/modperl/branches/httpd24/t/response/TestAPI/access2.pm
Modified: perl/modperl/branches/httpd24/t/response/TestAPI/access2.pm
URL:
http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/t/response/TestAPI/access2.pm?rev=1448100&r1=1448099&r2=1448100&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/t/response/TestAPI/access2.pm (original)
+++ perl/modperl/branches/httpd24/t/response/TestAPI/access2.pm Wed Feb 20
11:43:14 2013
@@ -33,16 +33,38 @@ use Apache2::RequestRec ();
use Apache::TestTrace;
use Apache2::Const -compile => qw(OK HTTP_UNAUTHORIZED SERVER_ERROR
- M_POST :satisfy);
+ AUTHZ_GRANTED AUTHZ_DENIED M_POST :satisfy
+ AUTHZ_DENIED_NO_USER);
my $users = "goo bar";
-my $groups = "bar tar";
+my $groups = "xar tar";
my %users = (
goo => "goopass",
bar => "barpass",
);
-sub handler {
+sub authz_handler {
+ my $self = shift;
+ my $r = shift;
+ my $requires = shift;
+
+ if (!$r->user) {
+ return Apache2::Const::AUTHZ_DENIED_NO_USER;
+ }
+
+ return Apache2::Const::SERVER_ERROR unless
+ $requires eq $users or $requires eq $groups;
+
+ my @require_args = split(/\s+/, $requires);
+ if (grep {$_ eq $r->user} @require_args) {
+ return Apache2::Const::AUTHZ_GRANTED;
+ }
+
+ return Apache2::Const::AUTHZ_DENIED;
+}
+
+sub authn_handler {
+ my $self = shift;
my $r = shift;
die '$r->some_auth_required failed' unless $r->some_auth_required;
@@ -54,29 +76,9 @@ sub handler {
my ($rc, $sent_pw) = $r->get_basic_auth_pw;
return $rc if $rc != Apache2::Const::OK;
- # extract just the requirement entries
- my %require =
- map { my ($k, $v) = split /\s+/, $_->{requirement}, 2; ($k, $v||'') }
- @{ $r->requires };
- debug \%require;
-
- # silly (we don't check user/pass here), just checking when
- # the Limit options are getting through
if ($r->method_number == Apache2::Const::M_POST) {
- if (exists $require{"valid-user"}) {
- return Apache2::Const::OK;
- }
- else {
- return Apache2::Const::SERVER_ERROR;
- }
+ return Apache2::Const::OK;
}
- else {
- # non-POST requests shouldn't see the Limit enclosed entry
- return Apache2::Const::SERVER_ERROR if exists $require{"valid-user"};
- }
-
- return Apache2::Const::SERVER_ERROR unless $require{user} eq $users;
- return Apache2::Const::SERVER_ERROR unless $require{group} eq $groups;
my $user = $r->user;
my $pass = $users{$user} || '';
@@ -90,9 +92,12 @@ sub handler {
1;
__DATA__
+
<NoAutoConfig>
+PerlAddAuthzProvider my-user TestAPI::access2->authz_handler
+PerlAddAuthzProvider my-group TestAPI::access2->authz_handler
<Location /TestAPI__access2>
- PerlAuthenHandler TestAPI::access2
+ PerlAuthenHandler TestAPI::access2->authn_handler
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
@@ -102,8 +107,8 @@ __DATA__
</IfModule>
AuthType Basic
AuthName "Access"
- Require user goo bar
- Require group bar tar
+ Require my-user goo bar
+ Require my-group xar tar
<Limit POST>
Require valid-user
</Limit>