Skip to content

Commit aa82a2a

Browse files
author
tailor
committed
[project @ Do not send namespace aliases for extensions with OpenID 1 messages that we create]
This makes the library compatible with the 1.x series of this library, since it did not handle arbitrary query keys with dots in them (PHP mangles . to _)
1 parent 2456aa5 commit aa82a2a

File tree

3 files changed

+53
-2
lines changed

3 files changed

+53
-2
lines changed

Diff for: Auth/OpenID/Extension.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@ function getExtensionArgs()
4141
*/
4242
function toMessage(&$message)
4343
{
44-
if ($message->namespaces->addAlias($this->ns_uri,
45-
$this->ns_alias) === null) {
44+
$implicit = $message->isOpenID1();
45+
$added = $message->namespaces->addAlias($this->ns_uri,
46+
$this->ns_alias,
47+
$implicit);
48+
49+
if ($added === null) {
4650
if ($message->namespaces->getAlias($this->ns_uri) !=
4751
$this->ns_alias) {
4852
return null;

Diff for: Tests/Auth/OpenID/Extension.php

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
require_once 'PHPUnit.php';
4+
require_once 'Auth/OpenID/Message.php';
5+
require_once 'Auth/OpenID/Extension.php';
6+
7+
class _ExtensionTest_DummyExtension extends Auth_OpenID_Extension {
8+
var $ns_uri = 'http://an.extension/';
9+
var $ns_alias = 'dummy';
10+
11+
function getExtensionArgs()
12+
{
13+
return array();
14+
}
15+
}
16+
17+
class Tests_Auth_OpenID_Extension extends PHPUnit_TestCase {
18+
function test_OpenID1()
19+
{
20+
$oid1_msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
21+
$ext = new _ExtensionTest_DummyExtension();
22+
$ext->toMessage($oid1_msg);
23+
$namespaces = $oid1_msg->namespaces;
24+
25+
$this->assertTrue($namespaces->isImplicit($ext->ns_uri));
26+
$this->assertEquals($ext->ns_uri,
27+
$namespaces->getNamespaceURI($ext->ns_alias));
28+
$this->assertEquals($ext->ns_alias,
29+
$namespaces->getAlias($ext->ns_uri));
30+
}
31+
32+
function test_OpenID2()
33+
{
34+
$oid2_msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
35+
$ext = new _ExtensionTest_DummyExtension();
36+
$ext->toMessage($oid2_msg);
37+
$namespaces = $oid2_msg->namespaces;
38+
$this->assertFalse($namespaces->isImplicit($ext->ns_uri));
39+
$this->assertEquals($ext->ns_uri,
40+
$namespaces->getNamespaceURI($ext->ns_alias));
41+
$this->assertEquals($ext->ns_alias,
42+
$namespaces->getAlias($ext->ns_uri));
43+
}
44+
}
45+
46+
?>

Diff for: Tests/TestDriver.php

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ function global_require_once($name)
133133
'CryptUtil',
134134
'DiffieHellman',
135135
'Discover_OpenID',
136+
'Extension',
136137
'HMACSHA1',
137138
'KVForm',
138139
'Message',

0 commit comments

Comments
 (0)