diff options
author | Thomas Klausner <domm@cpan.org> | 2008-12-01 23:39:32 +0100 |
---|---|---|
committer | Thomas Klausner <domm@cpan.org> | 2008-12-01 23:39:32 +0100 |
commit | f98bd8fa5fe7af4b740b9f0abc6191f2942f3777 (patch) | |
tree | e0382c08d61ef926cc63ff55a081389abc62007b | |
parent | better .gitignore (diff) | |
parent | Merge branch 'master' of git@git.useperl.at:PAUSE-OpenID (diff) | |
download | Simple-OpenID-f98bd8fa5fe7af4b740b9f0abc6191f2942f3777.tar.gz Simple-OpenID-f98bd8fa5fe7af4b740b9f0abc6191f2942f3777.tar.bz2 Simple-OpenID-f98bd8fa5fe7af4b740b9f0abc6191f2942f3777.zip |
Merge branch 'master' of git@git.useperl.at:PAUSE-OpenID
-rw-r--r-- | lib/PAUSE/OpenID/Controller/Root.pm | 11 | ||||
-rw-r--r-- | pause_openid.pl | 4 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/PAUSE/OpenID/Controller/Root.pm b/lib/PAUSE/OpenID/Controller/Root.pm index 12bcac6..05135e5 100644 --- a/lib/PAUSE/OpenID/Controller/Root.pm +++ b/lib/PAUSE/OpenID/Controller/Root.pm @@ -71,8 +71,14 @@ sub login :Local { $c->log->debug('username "'.$username.'" login attempt'); my $ua = LWP::UserAgent->new; + my $req = HTTP::Request->new(GET => 'https://pause.perl.org/pause/authenquery'); + $req->header('If-SSL-Cert-Subject' => '/CN=pause.perl.org'); + local $ENV{HTTPS_CA_DIR} = $c->config->{'ssl'}->{'ca_dir'}; $ua->credentials('pause.perl.org:443', 'PAUSE', $username, $password); - my $res = $ua->get('https://pause.perl.org/pause/authenquery'); + my $res = $ua->request($req); + + die 'pause server certificate validation failed' + if exists $res->headers->{'client-ssl-warning'}; if ($res->code == 200) { $c->log->info('login pass'); @@ -81,6 +87,9 @@ sub login :Local { } else { $c->log->warn('login failed'); + use Data::Dumper; + die Dumper($res); + $c->res->redirect($c->uri_for('/login_failed')); } } diff --git a/pause_openid.pl b/pause_openid.pl index a5e22ee..6604d9b 100644 --- a/pause_openid.pl +++ b/pause_openid.pl @@ -25,5 +25,9 @@ return { 'PAUSE::OpenID'=>{ hostname=>'id.pause.org', }, + + 'ssl' => { + 'ca_dir' => '/etc/ssl/certs/', + } }; |