From: Errietta Kostala Date: Wed, 28 Jan 2015 10:32:15 +0000 (+0000) Subject: Google token decoding test X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2Fstemmaweb.git;a=commitdiff_plain;h=6ab7cb54cfeaa6c0ca5c02730f6de7fad4b384d3 Google token decoding test --- diff --git a/stemmaweb_tests.conf b/stemmaweb_tests.conf index a4e4302..5f796e9 100644 --- a/stemmaweb_tests.conf +++ b/stemmaweb_tests.conf @@ -1,3 +1,7 @@ no_recaptcha 1 + + public_cert_url file://__path_to(t/etc/certs)__ + client_id 577442226093-pi2ud795g49ibip78bgfoabhl4kdrguc.apps.googleusercontent.com + diff --git a/t/07google.t b/t/07google.t index 76ee9ed..46e6a20 100644 --- a/t/07google.t +++ b/t/07google.t @@ -173,4 +173,50 @@ my $ua = Test::WWW::Mechanize->new; $ua->content_contains('Hello! 2!', 'We are logged in.'); } +# Decoding token + +{ + my $scope = $dir->new_scope; + + ok !$dir->find_user({ sub => 4242, openid_id => 'https://www.google.com/accounts/o8/id3' }), 'The G+ user is not yet there.'; + + $ua->get('/logout'); + + $ua->get_ok('http://localhost/login'); + + $ua->submit_form( + form_number => 1, + fields => { + id_token => 'eyJraWQiOiJhIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI0MjQyIiwib3BlbmlkX2lkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hY2NvdW50cy9vOC9pZDMifQ.moNERe3UHCY4xGMPxdCqmbg2JKW5feVnYlA8jeB4CdE4c_KL3YHvICQeql-S486HT-AlWBeDJWMr6wWH1kkwz11a2D1oyJ8qCWBssHIkhfv8dm3dphmRbtzYssAOFdGsmnPH1oXolCnl-Qu9WgHkhYYnRJWHr3CkeNA6Yh1xOV3nkaa8REtJckuzh3jyKQgx_rjIFsWBPDmT1rqa_Q0XOGVK34N5tADwpcWmkb3fFnbddzd9L6MnybbFzF_S238Bpr5vNa9doXRBwvJ85AdSn1AWX8R6qVpDbbaiGL2RCahuZYF9XECYm6anee-KTKvxh02KXkG2zniKVvweaMlcbQ', + email => 'email@example.org', + }, + ); + + $ua->content_contains('You have logged in.', 'We can now log in to our created user - the token was decoded'); + + $ua->get('/'); + + $ua->content_contains('Hello! 4242!', 'We are logged in.'); + + ok $dir->find_user({ sub => 4242, openid_id => 'https://www.google.com/accounts/o8/id3' }), 'The G+ user is there.'; + + $ua->get('/logout'); + + $ua->get_ok('http://localhost/login'); + + $ua->submit_form( + form_number => 1, + fields => { + id_token => 'eyJraWQiOiJhIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI0MjQyIiwib3BlbmlkX2lkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hY2NvdW50cy9vOC9pZDMifQ.moNERe3UHCY4xGMPxdCqmbg2JKW5feVnYlA8jeB4CdE4c_KL3YHvICQeql-S486HT-AlWBeDJWMr6wWH1kkwz11a2D1oyJ8qCWBssHIkhfv8dm3dphmRbtzYssAOFdGsmnPH1oXolCnl-Qu9WgHkhYYnRJWHr3CkeNA6Yh1xOV3nkaa8REtJckuzh3jyKQgx_rjIFsWBPDmT1rqa_Q0XOGVK34N5tADwpcWmkb3fFnbddzd9L6MnybbFzF_S238Bpr5vNa9doXRBwvJ85AdSn1AWX8R6qVpDbbaiGL2RCahuZYF9XECYm6anee-KTKvxh02KXkG2zniKVvweaMlcbQ', + email => 'email@example.org', + }, + ); + + $ua->content_contains('You have logged in.', 'We can login again'); + + $ua->get('/'); + + $ua->content_contains('Hello! 4242!', 'We are logged in.'); +} + done_testing; diff --git a/t/etc/certs b/t/etc/certs new file mode 100644 index 0000000..a44c046 --- /dev/null +++ b/t/etc/certs @@ -0,0 +1,2 @@ +{"a":"-----BEGIN CERTIFICATE-----\nMIIE0DCCArigAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEL\nMAkGA1UECAwCTUQxEjAQBgNVBAcMCUJhbHRpbW9yZTEQMA4GA1UEAwwHVGVzdCBD\nQTEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0xNTAxMjYxMTU3\nNTZaFw0xNzEwMjIxMTU3NTZaMB4xHDAaBgNVBAMME3d3dy5zaGFkb3djYXQuY28u\ndWswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDce2mzNoeKSgUFwcXE\nJr9mPV0Ll/1PZ6rzQOZdkY0XCvDP0x4rw0y7x1ijN6LUvX+3JSPm/g+giXSw/7cc\n3THtwwWz+RY8DlgdRkDF9V6U8Tjo2hkFl6nfFlsXOzsAz7AmiMAVVXOQMHT2wb5d\nIhRgvA8hCEyqpx+2kFig00r2uIeoaGhMuAnW89zLqgYzg5XGavu/Vt4lf/HTDx51\ntM07TIrCktBCX/aIdbftlqgrBi8vjjF9lRxDm+r42MuYiKmPcpBL5LRNPc4skbCP\nIp60scjT7UA5GsI12thwLt1slXdgYLrD1XHQ+WPXelDBh4fHm6Mgc088Fe31Puyz\nUQf9AgMBAAGjgdUwgdIwHQYDVR0OBBYEFAAg1uakzZ37JocFmAr1iYsikNhTMB8G\nA1UdIwQYMBaAFI5KHDHsikZCCtGxDFJEkJiOP4b0MAkGA1UdEwQCMAAwCwYDVR0P\nBAQDAgWgMEoGA1UdEQRDMEGCC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5jb22C\nEG1haWwuZXhhbXBsZS5jb22CD2Z0cC5leGFtcGxlLmNvbTAsBglghkgBhvhCAQ0E\nHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQELBQAD\nggIBALtDw8bT9jCSXVlyxf4ph3Qcl2vkM5P91hnK/UApnd2157RfGpBa79wc2VgC\ni9LgQ7HWV0LJF3i4OzWO5ZdG4ptWb2HHgpXb881dq1/Mih/JTw2inX5ihvSOxykT\n9nFEULCljAxoEUd8PPnPJEZYk4xUVyw28XQA135HuFyOAn6MbPWkqxD6CTLfrlw5\nJGKSFijRNUZQlgMiw8Zbb1xwL1TfCjSO2bQvND4CS2UMBdRMPj9tQ98dlCMDsnc2\nYt0Ov+oaFY7wDnt4DabeXAyifzP1wkZRGi2esfbjMSC9DkD0EHJAfiBP5om9ieJV\nbNIWN3ueePhPpS6bqVtnY2MDGlWyICfSw5ocz0j/azqvolFP010CVl/tCLBBIVSf\nrBSlugYh7fxBUnEHirEfz42sVn+8lRBDqI3e8lNBQqg/8TtHLoBO6+n1g4ZNlbqq\nzdmc7w2mE+rr5OH0xq3Nv5fOUYoVeJfIRiR8ouRNxnPl0SgkNFhln5BVVPwAfXsb\nFbYAdAa871eL6R73J5LjkTOYbG4Zs49CqUOqByGeH8bX7r2DBKMeqYFJ81+4BH87\nqFgVH8I1FGwHEUHL5Qb660ozd+iFSGJfMEutLP3tNiuTpsBdYDiv3rRC3JYinOhL\nTrUwSVrKTS6HzpdI2YkmQcNS1sQcVpOCpVB+ukFHIju9XwLs\n-----END CERTIFICATE-----\n"} +