summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Hoyt <josh@janrain.com>2006-09-08 00:09:59 +0000
committerJosh Hoyt <josh@janrain.com>2006-09-08 00:09:59 +0000
commit9588223f3465c362171cdcab5101feca2a3b0412 (patch)
tree414245917ea3d69bf4ed91f7a9f0d98173779599
parent3f1a808ec947162636862c97907d69a726fa62da (diff)
downloadphp-openid-9588223f3465c362171cdcab5101feca2a3b0412.zip
php-openid-9588223f3465c362171cdcab5101feca2a3b0412.tar.gz
php-openid-9588223f3465c362171cdcab5101feca2a3b0412.tar.bz2
[project @ Make all tests pass!]
-rw-r--r--Auth/OpenID/Consumer.php41
-rw-r--r--Tests/Auth/OpenID/Consumer.php4
-rw-r--r--Tests/TestDriver.php11
3 files changed, 28 insertions, 28 deletions
diff --git a/Auth/OpenID/Consumer.php b/Auth/OpenID/Consumer.php
index f57a1bd..86a0e0d 100644
--- a/Auth/OpenID/Consumer.php
+++ b/Auth/OpenID/Consumer.php
@@ -738,40 +738,39 @@ class Auth_OpenID_GenericConsumer {
function _checkNonce($server_url, $response)
{
$nonce = $response->getNonce();
- $parsed_url = parse_url($response->getReturnTo());
- $query_str = @$parsed_url['query'];
- $query = array();
- parse_str($query_str, $query);
-
- $found = false;
-
- foreach ($query as $k => $v) {
- if ($k == 'nonce') {
- if ($v != $nonce) {
- return new Auth_OpenID_FailureResponse($response,
- "Nonce mismatch");
- } else {
+ if ($nonce === null) {
+ $parsed_url = parse_url($response->getReturnTo());
+ $query_str = @$parsed_url['query'];
+ $query = array();
+ parse_str($query_str, $query);
+
+ $found = false;
+
+ foreach ($query as $k => $v) {
+ if ($k == 'nonce') {
+ $server_url = '';
+ $nonce = $v;
$found = true;
break;
}
}
- }
- if (!$found) {
- return new Auth_OpenID_FailureResponse($response,
- sprintf("Nonce missing from return_to: %s",
- $response->getReturnTo()));
+
+ if (!$found) {
+ return new Auth_OpenID_FailureResponse($response,
+ sprintf("Nonce missing from return_to: %s",
+ $response->getReturnTo()));
+ }
}
list($timestamp, $salt) = Auth_OpenID_splitNonce($nonce);
- if (!($timestamp &&
- $salt)) {
+ if (!($timestamp && $salt)) {
return new Auth_OpenID_FailureResponse($response,
'Malformed nonce');
}
- if (!$this->store->useNonce($endpoint->server_url,
+ if (!$this->store->useNonce($server_url,
$timestamp, $salt)) {
return new Auth_OpenID_FailureResponse($response,
"Nonce missing from store");
diff --git a/Tests/Auth/OpenID/Consumer.php b/Tests/Auth/OpenID/Consumer.php
index 2ed6ee4..1e9311c 100644
--- a/Tests/Auth/OpenID/Consumer.php
+++ b/Tests/Auth/OpenID/Consumer.php
@@ -217,7 +217,7 @@ class Tests_Auth_OpenID_Consumer extends PHPUnit_TestCase {
$result = $consumer->complete($query, $result->endpoint);
- $this->assertEquals($result->status, Auth_OpenID_SUCCESS);
+ $this->assertEquals(Auth_OpenID_SUCCESS, $result->status);
$this->assertEquals($result->identity_url, $user_url);
}
@@ -391,7 +391,7 @@ class Tests_Auth_OpenID_Consumer_CheckNonceTest extends _TestIdRes {
$ret = $this->consumer->_checkNonce($this->server_url, $this->response);
$this->assertEquals($ret->status, Auth_OpenID_FAILURE);
$this->assertEquals($ret->identity_url, $this->consumer_id);
- $this->assertTrue(strpos($ret->message, 'Nonce mismatch') === 0);
+ $this->assertTrue(strpos($ret->message, 'Malformed nonce') === 0, $ret->message);
}
function test_missingNonce()
diff --git a/Tests/TestDriver.php b/Tests/TestDriver.php
index 621773b..c61086c 100644
--- a/Tests/TestDriver.php
+++ b/Tests/TestDriver.php
@@ -117,16 +117,17 @@ $_tests = array(
'Consumer',
'CryptUtil',
'DiffieHellman',
+ 'Discover',
'HMACSHA1',
'KVForm',
- 'Util',
+ 'Nonce',
+ 'OpenID_Yadis',
'Parse',
- 'StoreTest',
'Server',
+ 'StoreTest',
'TrustRoot',
- 'Discover',
- 'OpenID_Yadis',
- 'URINorm'),
+ 'URINorm',
+ 'Util'),
),
array(
'dir' => 'Tests/Services/Yadis/',