Ticket #1122 (new defect)

Opened 8 years ago

[S] Wrong format for Yadis XRDS additional service endpoints

Reported by: pjkersha Owned by: pjkersha
Priority: critical Milestone:
Component: security Version:
Keywords: XRD Cc:

Description

For ESGF, the XRDS document returned by the OpenID Provider returns additional service endpoints. These should be listed at the level of a single XRD element and not one per XRD element.

This is the current wrong way:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
        <XRD>
                <Service priority="0">
                       <Type>http://specs.openid.net/auth/2.0/signon</Type>
                       <Type>http://openid.net/signon/1.0</Type>
                       <URI>https://openid.provider.somewhere.ac.uk</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
        </XRD>
        <XRD>
                 <Service priority="10">
                       <Type>urn:esg:security:myproxy-service</Type>
                       <URI>socket://myproxy-server.somewhere.ac.uk:7512</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
        </XRD>
        <XRD>
                 <Service priority="20">
                       <Type>urn:esg:security:attribute-service</Type>
                       <URI>https://attributeservice.somewhere.ac.uk</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
        </XRD>
</xrds:XRDS>

This is the correct way:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
        <XRD>
                <Service priority="0">
                       <Type>http://specs.openid.net/auth/2.0/signon</Type>
                       <Type>http://openid.net/signon/1.0</Type>
                       <URI>https://openid.provider.somewhere.ac.uk</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
                 <Service priority="10">
                       <Type>urn:esg:security:myproxy-service</Type>
                       <URI>socket://myproxy-server.somewhere.ac.uk:7512</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
                 <Service priority="20">
                       <Type>urn:esg:security:attribute-service</Type>
                       <URI>https://attributeservice.somewhere.ac.uk</URI>
                       <LocalID>https://somewhere.ac.uk/openid/PJKershaw</LocalID>
                 </Service>
        </XRD>
</xrds:XRDS>
Note: See TracTickets for help on using tickets.