Apache-AuthCASSimple
view release on metacpan or search on metacpan
AuthCASSimple.xs view on Meta::CPAN
module MODULE_VAR_EXPORT XS_Apache__AuthCASSimple = {
STANDARD_MODULE_STUFF,
NULL, /* module initializer */
create_dir_config_sv, /* per-directory config creator */
NULL, /* dir config merger */
NULL, /* server config creator */
NULL, /* server config merger */
mod_cmds, /* command table */
NULL, /* [7] list of handlers */
NULL, /* [2] filename-to-URI translation */
NULL, /* [5] check/validate user_id */
NULL, /* [6] check user_id is valid *here* */
NULL, /* [4] check access by host address */
NULL, /* [7] MIME type checker/setter */
NULL, /* [8] fixups */
NULL, /* [10] logger */
NULL, /* [3] header parser */
NULL, /* process initializer */
NULL, /* process exit/cleanup */
NULL, /* [1] post read_request handling */
};
lib/Apache/AuthCASSimple.pm view on Meta::CPAN
my %args = $r->args();
unless ($args{ticket}) {
$log->info(__PACKAGE__.": No ticket, client redirected to CAS server.");
$r->err_header_out("Location" => $login_url);
return REDIRECT;
}
# Validate the ticket we received
if ($args{ticket}=~/^PT/) {
my $r = $cas->proxy_validate( $requested_url, $args{ticket} );
if( $r->is_success() ) {
$user=$r->user();
$log->warn(__PACKAGE__.": Validate PT on CAS Proxy server. ".join ",", $r->proxies());
};
}
else {
my $r = $cas->service_validate( $requested_url, $args{ticket} );
if ( $r->is_success() ) {
$user = $r->user();
}
}
unless ($user) {
$log->warn(__PACKAGE__.": Unable to validate ticket ".$args{ticket}." on CAS server.");
$r->err_header_out("Location" => $login_url);
return REDIRECT;
#return FORBIDDEN;
}
$log->info(__PACKAGE__.": Ticket ".$args{ticket}." succesfully validated.");
if ( $user ) {
$r->connection->user($user);
$log->info(__PACKAGE__.": New session ".$r->uri() ."--".$r->args());
# if we are there (and timeout is set), we can create session data and cookie
_remove_ticket($r);
_create_user_session($r) if($cfg->{_cas_session_timeout} >= 0);
$r->err_header_out("Location" => $r->uri . ($r->args ? '?' . $r->args : '') );
( run in 0.510 second using v1.01-cache-2.11-cpan-a5abf4f5562 )