php-openid
php-openid copied to clipboard
Yadis Discover should not iterate
I have created issue originally in python-openid library https://github.com/openid/python-openid/issues#issue/8
Problem is that as we have XRDS document like this:
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns:openid="http://openid.net/xmlns/1.0" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="10">
<Type>http://openid.net/server/1.1</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://test.provider/endpoint/</URI>
</Service>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://test.provider/endpoint/</URI>
</Service>
</XRD>
</xrds:XRDS>
Repetitive creation of openid requests (run by another reason then unavailable endpoint) results in generating requests with different openid namespace instead of creation of request with the highest priority available as required by specification of YADIS protocol.
In my opinion current implementation partially ignores priorities in XRDS document and uses them only to initial ordering of services.