summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Auth/OpenID/Consumer.php7
-rw-r--r--Auth/OpenID/Message.php9
-rw-r--r--Tests/Auth/OpenID/Consumer.php12
3 files changed, 20 insertions, 8 deletions
diff --git a/Auth/OpenID/Consumer.php b/Auth/OpenID/Consumer.php
index a4b7a59..af52137 100644
--- a/Auth/OpenID/Consumer.php
+++ b/Auth/OpenID/Consumer.php
@@ -1322,13 +1322,12 @@ class Auth_OpenID_GenericConsumer {
continue;
}
- if (!$message->hasKey(Auth_OpenID_OPENID_NS,
- $k)) {
+ $value = $message->getAliasedArg($k);
+ if ($value === null) {
return null;
}
- $val = $message->getAliasedArg($k);
- $check_args[$k] = $val;
+ $check_args[$k] = $value;
}
}
diff --git a/Auth/OpenID/Message.php b/Auth/OpenID/Message.php
index 6bfc5f8..8a02ab2 100644
--- a/Auth/OpenID/Message.php
+++ b/Auth/OpenID/Message.php
@@ -873,7 +873,14 @@ class Auth_OpenID_Message {
$ns = null;
} else {
list($alias, $key) = $parts;
- $ns = $this->namespaces->getNamespaceURI($alias);
+
+ if ($alias == 'ns') {
+ // Return the namespace URI for a namespace alias
+ // parameter.
+ return $this->namespaces->getNamespaceURI($key);
+ } else {
+ $ns = $this->namespaces->getNamespaceURI($alias);
+ }
}
if ($ns === null) {
diff --git a/Tests/Auth/OpenID/Consumer.php b/Tests/Auth/OpenID/Consumer.php
index 8b676ee..a21b3ea 100644
--- a/Tests/Auth/OpenID/Consumer.php
+++ b/Tests/Auth/OpenID/Consumer.php
@@ -1391,18 +1391,23 @@ class Tests_Auth_OpenID_Consumer_TestCheckAuth extends _TestIdRes {
{
$query = Auth_OpenID_Message::fromOpenIDArgs(array(
'mode'=> 'id_res',
+ 'ns' => Auth_OpenID_OPENID2_NS,
'sig'=> 'rabbits',
'identity'=> '=example',
'assoc_handle'=> 'munchkins',
- 'signed'=> 'identity,mode',
+ 'ns.sreg' => 'urn:sreg',
+ 'sreg.email' => 'bogus@example.com',
+ 'signed'=> 'identity,mode,ns.sreg,sreg.email',
'foo'=> 'bar'));
$expected = Auth_OpenID_Message::fromOpenIDArgs(array(
'mode'=> 'check_authentication',
'sig'=> 'rabbits',
'assoc_handle'=> 'munchkins',
+ 'ns.sreg' => 'urn:sreg',
+ 'sreg.email' => 'bogus@example.com',
'identity'=> '=example',
- 'signed'=> 'identity,mode'
+ 'signed'=> 'identity,mode,ns.sreg,sreg.email'
));
$args = $this->consumer->_createCheckAuthRequest($query);
@@ -1524,7 +1529,8 @@ class Tests_Auth_OpenID_SuccessResponse extends PHPUnit_TestCase {
$signed_list = array('openid.sreg.nickname',
'openid.unittest.one',
- 'openid.sreg.dob');
+ 'openid.sreg.dob',
+ 'openid.ns.sreg');
$msg = Auth_OpenID_Message::fromOpenIDArgs($args);
$resp = new Auth_OpenID_SuccessResponse($this->endpoint, $msg, $signed_list);