diff options
author | Kevin Turner <kevin@janrain.com> | 2008-06-13 17:57:05 +0000 |
---|---|---|
committer | Kevin Turner <kevin@janrain.com> | 2008-06-13 17:57:05 +0000 |
commit | 7384d0b27350c9bfba6285ed80cfdbc7545f730c (patch) | |
tree | c8e2ef4789dad2d274fd69f8b38ac80b427bb5da /openid/yadis | |
parent | 6ea3dc791af790e64105df1c89781e2b8732a033 (diff) | |
download | openid-7384d0b27350c9bfba6285ed80cfdbc7545f730c.tar.gz |
[project @ etxrd.getCanonicalID: case-insensitive comparsions, patch from =wil]
1. There should only be a single CanonicalID in each XRD (in the latest XRI
resolution spec), so I made it use the first CID found instead of the last.
2. Use case-insensitive comparison when comparing CanonicalIDs.
Diffstat (limited to 'openid/yadis')
-rw-r--r-- | openid/yadis/etxrd.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/openid/yadis/etxrd.py b/openid/yadis/etxrd.py index 1242b01..ef5cadf 100644 --- a/openid/yadis/etxrd.py +++ b/openid/yadis/etxrd.py @@ -172,19 +172,18 @@ def getCanonicalID(iname, xrd_tree): xrd_list.reverse() try: - canonicalID = xri.XRI(xrd_list[0].findall(canonicalID_tag)[-1].text) + canonicalID = xri.XRI(xrd_list[0].findall(canonicalID_tag)[0].text) except IndexError: return None - childID = canonicalID + childID = canonicalID.lower() for xrd in xrd_list[1:]: # XXX: can't use rsplit until we require python >= 2.4. parent_sought = childID[:childID.rindex('!')] - parent_list = [xri.XRI(c.text) for c in xrd.findall(canonicalID_tag)] - if parent_sought not in parent_list: - raise XRDSFraud("%r can not come from any of %s" % (parent_sought, - parent_list)) + parent = xri.XRI(xrd.findtext(canonicalID_tag)) + if parent_sought != parent.lower(): + raise XRDSFraud("%r can not come from %s" % (childID, parent)) childID = parent_sought |