Apache2-AuthCASpbh
view release on metacpan or search on metacpan
lib/Apache2/AuthCASpbh/Authn.pm view on Meta::CPAN
my $service;
if (defined(cfg_value($dir_cfg, 'ServiceOverride'))) {
$service = cfg_value($dir_cfg, 'ServiceOverride');
$_log->l($debug_level, "overriding service to $service");
}
else {
$service = $r->construct_url() . ($qs_nt ? "?$qs_nt" : '');
$_log->l($debug_level, "set service to $service");
};
$service = Apache2::Util::escape_path($service, $r->pool);
my $st = $q->param('ticket');
if ($st) {
my $ua = LWP::UserAgent->new(timeout => 10, keep_alive => 1);
my $proxy_allow = cfg_value($dir_cfg, 'ProxyAllow');
my $proxy_allow_re = cfg_value($dir_cfg, 'ProxyAllowRE');
my $validate_url = cfg_value($dir_cfg, 'ServerURL') .
(defined($proxy_allow) || defined($proxy_allow_re) ?
lib/Apache2/AuthCASpbh/Authn.pm view on Meta::CPAN
if (cfg_value($dir_cfg, 'RequestPGT')) {
my $pgt_callback = cfg_value($dir_cfg, 'PGTCallback');
if ($pgt_callback !~ m#^https://#) {
$pgt_callback = 'https://' . $r->server->server_hostname .
$pgt_callback;
}
$_log->l($debug_level, "using PGT callback $pgt_callback");
$pgt_callback = Apache2::Util::escape_path($pgt_callback, $r->pool);
$validate_url .= "&pgtUrl=$pgt_callback";
}
my $response;
$response = $ua->get($validate_url);
if(!$response->is_success()) {
$_log->l('error', 'ticket validation call failed - ' .
$response->status_line());
lib/Apache2/AuthCASpbh/UserAgent.pm view on Meta::CPAN
my $q = CGI->new($self->{apache_r}, \$qs);
my $service = $q->param('service');
return $_log->l('error', 'no service found in CAS login redirect')
unless defined($service);
my $pgt = $self->{apache_r}->pnotes("cas_pgt");
return $_log->l('error', 'no PGT found for request') unless defined($pgt);
my $proxy_url = $self->{cas_proxy_url} . "?targetService=" .
Apache2::Util::escape_path($service, $self->{apache_r}->pool) .
"&pgt=$pgt";
$_log->l($debug_level, "requesting PT via $proxy_url");
my $response = $self->{cas_ua}->get($proxy_url);
return $_log->l('error', 'PT request failed - ' . $response->status_line())
unless $response->is_success();
my $cas_data = eval { XML::Simple::XMLin($response->content()) };
( run in 0.330 second using v1.01-cache-2.11-cpan-c21f80fb71c )