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 )