Apache2-AUS
view release on metacpan or search on metacpan
examples/CGI/httpd.conf view on Meta::CPAN
$server->add_config(["Alias /test/apache2-aus-cgi $dir/htdocs"]);
</Perl>
<Files "*.cgi">
SetHandler cgi-script
</Files>
<Location /test/apache2-aus-cgi>
Options +ExecCGI
AuthType Cookie
AuthName "AUS Example"
PerlInitHandler Apache2::AUS->Init
PerlAuthenHandler Apache2::AUS->Authen
</Location>
<Location /test/apache2-aus-cgi/protected.cgi>
require valid-user
</Location>
lib/Apache2/AUS.pm view on Meta::CPAN
return 1;
sub Init {
my($class, $r) = @_;
my $session = $r->aus_session || create_session($r);
my $use_count = $session->param('_use_count');
$use_count ++;
$session->param('_use_count', $use_count);
$r->headers_out->add('Set-Cookie', bake_session_cookie($r, $session));
$r->aus_session($session);
$r->push_handlers(PerlFixupHandler => \&_Fixup);
if(my $u = $session->user) {
$r->user($u->{id});
}
return OK;
}
lib/Apache2/AUS/Util.pm view on Meta::CPAN
use warnings;
use Exporter;
use base q(Exporter);
use Apache2::RequestRec ();
use Apache2::RequestUtil ();
use Apache2::Connection ();
use Apache2::SubRequest ();
use Apache2::Log ();
use Apache2::Const qw(FORBIDDEN OK);
use CGI;
use CGI::Cookie;
use CGI::Session::AUS;
use Apache2::AUS::RequestRec;
our @EXPORT_OK = qw(
create_session bake_session_cookie set_remote_user
check_requirement auth_failure go
);
our %_requirements = (
'valid-user' => sub {
lib/Apache2/AUS/Util.pm view on Meta::CPAN
local $ENV{REMOTE_ADDR} = $r->connection->remote_ip();
my $session = CGI::Session::AUS->new(undef, $init, undef);
$session->param('_use_count', 0) unless $session->param('_use_count');
return $session;
}
sub get_session_id {
my $r = shift;
my $key = session_cookie_key($r);
if(my $cookie_jar = CGI::Cookie->fetch($r)) {
if($cookie_jar->{$key}) {
return $cookie_jar->{$key}->value;
}
}
return;
}
sub bake_session_cookie {
my($r, $session) = @_;
my $key = session_cookie_key($r);
return CGI::Cookie->new(-name => $key, -value => $session->id);
}
sub set_remote_user {
my($r, $id) = @_;
$r->main->user($id) if($r->main);
$r->user($id);
return $id;
}
# for an AND relationship, specify multiple "require" lines;
lib/Apache2/AUS/Util.pm view on Meta::CPAN
} else {
$r->warn(qq{Unknown requirement "$req"; ignored.});
return 1;
}
}
sub auth_failure {
my($r, $reason) = @_;
$r->subprocess_env(AUS_AUTH_FAILURE => $reason);
$r->log_reason($reason);
$r->headers_out->set('WWW-Authenticate', "Cookie; uri=/");
return FORBIDDEN;
}
sub go {
my($r, $uri) = @_;
$r->internal_redirect($uri);
return OK;
}
( run in 0.337 second using v1.01-cache-2.11-cpan-e9199f4ba4c )