pelle-ruby-openid 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. data/CHANGELOG +215 -0
  2. data/CHANGES-2.1.0 +36 -0
  3. data/INSTALL +47 -0
  4. data/LICENSE +210 -0
  5. data/NOTICE +2 -0
  6. data/README +82 -0
  7. data/UPGRADE +127 -0
  8. data/VERSION +1 -0
  9. data/examples/README +32 -0
  10. data/examples/active_record_openid_store/README +58 -0
  11. data/examples/active_record_openid_store/XXX_add_open_id_store_to_db.rb +24 -0
  12. data/examples/active_record_openid_store/XXX_upgrade_open_id_store.rb +26 -0
  13. data/examples/active_record_openid_store/init.rb +8 -0
  14. data/examples/active_record_openid_store/lib/association.rb +10 -0
  15. data/examples/active_record_openid_store/lib/nonce.rb +3 -0
  16. data/examples/active_record_openid_store/lib/open_id_setting.rb +4 -0
  17. data/examples/active_record_openid_store/lib/openid_ar_store.rb +57 -0
  18. data/examples/active_record_openid_store/test/store_test.rb +212 -0
  19. data/examples/discover +49 -0
  20. data/examples/rails_openid/README +153 -0
  21. data/examples/rails_openid/Rakefile +10 -0
  22. data/examples/rails_openid/app/controllers/application.rb +4 -0
  23. data/examples/rails_openid/app/controllers/consumer_controller.rb +122 -0
  24. data/examples/rails_openid/app/controllers/login_controller.rb +45 -0
  25. data/examples/rails_openid/app/controllers/server_controller.rb +265 -0
  26. data/examples/rails_openid/app/helpers/application_helper.rb +3 -0
  27. data/examples/rails_openid/app/helpers/login_helper.rb +2 -0
  28. data/examples/rails_openid/app/helpers/server_helper.rb +9 -0
  29. data/examples/rails_openid/app/views/consumer/index.rhtml +81 -0
  30. data/examples/rails_openid/app/views/layouts/server.rhtml +68 -0
  31. data/examples/rails_openid/app/views/login/index.rhtml +56 -0
  32. data/examples/rails_openid/app/views/server/decide.rhtml +26 -0
  33. data/examples/rails_openid/config/boot.rb +19 -0
  34. data/examples/rails_openid/config/database.yml +74 -0
  35. data/examples/rails_openid/config/environment.rb +54 -0
  36. data/examples/rails_openid/config/environments/development.rb +19 -0
  37. data/examples/rails_openid/config/environments/production.rb +19 -0
  38. data/examples/rails_openid/config/environments/test.rb +19 -0
  39. data/examples/rails_openid/config/routes.rb +24 -0
  40. data/examples/rails_openid/doc/README_FOR_APP +2 -0
  41. data/examples/rails_openid/public/.htaccess +40 -0
  42. data/examples/rails_openid/public/404.html +8 -0
  43. data/examples/rails_openid/public/500.html +8 -0
  44. data/examples/rails_openid/public/dispatch.cgi +12 -0
  45. data/examples/rails_openid/public/dispatch.fcgi +26 -0
  46. data/examples/rails_openid/public/dispatch.rb +12 -0
  47. data/examples/rails_openid/public/favicon.ico +0 -0
  48. data/examples/rails_openid/public/images/openid_login_bg.gif +0 -0
  49. data/examples/rails_openid/public/javascripts/controls.js +750 -0
  50. data/examples/rails_openid/public/javascripts/dragdrop.js +584 -0
  51. data/examples/rails_openid/public/javascripts/effects.js +854 -0
  52. data/examples/rails_openid/public/javascripts/prototype.js +1785 -0
  53. data/examples/rails_openid/public/robots.txt +1 -0
  54. data/examples/rails_openid/script/about +3 -0
  55. data/examples/rails_openid/script/breakpointer +3 -0
  56. data/examples/rails_openid/script/console +3 -0
  57. data/examples/rails_openid/script/destroy +3 -0
  58. data/examples/rails_openid/script/generate +3 -0
  59. data/examples/rails_openid/script/performance/benchmarker +3 -0
  60. data/examples/rails_openid/script/performance/profiler +3 -0
  61. data/examples/rails_openid/script/plugin +3 -0
  62. data/examples/rails_openid/script/process/reaper +3 -0
  63. data/examples/rails_openid/script/process/spawner +3 -0
  64. data/examples/rails_openid/script/process/spinner +3 -0
  65. data/examples/rails_openid/script/runner +3 -0
  66. data/examples/rails_openid/script/server +3 -0
  67. data/examples/rails_openid/test/functional/login_controller_test.rb +18 -0
  68. data/examples/rails_openid/test/functional/server_controller_test.rb +18 -0
  69. data/examples/rails_openid/test/test_helper.rb +28 -0
  70. data/lib/hmac/hmac.rb +112 -0
  71. data/lib/hmac/sha1.rb +11 -0
  72. data/lib/hmac/sha2.rb +25 -0
  73. data/lib/openid/association.rb +249 -0
  74. data/lib/openid/consumer/associationmanager.rb +344 -0
  75. data/lib/openid/consumer/checkid_request.rb +186 -0
  76. data/lib/openid/consumer/discovery.rb +498 -0
  77. data/lib/openid/consumer/discovery_manager.rb +123 -0
  78. data/lib/openid/consumer/html_parse.rb +134 -0
  79. data/lib/openid/consumer/idres.rb +523 -0
  80. data/lib/openid/consumer/responses.rb +148 -0
  81. data/lib/openid/consumer.rb +395 -0
  82. data/lib/openid/cryptutil.rb +97 -0
  83. data/lib/openid/dh.rb +89 -0
  84. data/lib/openid/extension.rb +39 -0
  85. data/lib/openid/extensions/ax.rb +516 -0
  86. data/lib/openid/extensions/oauth.rb +91 -0
  87. data/lib/openid/extensions/pape.rb +179 -0
  88. data/lib/openid/extensions/sreg.rb +277 -0
  89. data/lib/openid/extras.rb +11 -0
  90. data/lib/openid/fetchers.rb +238 -0
  91. data/lib/openid/kvform.rb +136 -0
  92. data/lib/openid/kvpost.rb +58 -0
  93. data/lib/openid/message.rb +553 -0
  94. data/lib/openid/protocolerror.rb +8 -0
  95. data/lib/openid/server.rb +1544 -0
  96. data/lib/openid/store/filesystem.rb +271 -0
  97. data/lib/openid/store/interface.rb +75 -0
  98. data/lib/openid/store/memcache.rb +107 -0
  99. data/lib/openid/store/memory.rb +84 -0
  100. data/lib/openid/store/nonce.rb +68 -0
  101. data/lib/openid/trustroot.rb +349 -0
  102. data/lib/openid/urinorm.rb +75 -0
  103. data/lib/openid/util.rb +110 -0
  104. data/lib/openid/yadis/accept.rb +148 -0
  105. data/lib/openid/yadis/constants.rb +21 -0
  106. data/lib/openid/yadis/discovery.rb +153 -0
  107. data/lib/openid/yadis/filters.rb +205 -0
  108. data/lib/openid/yadis/htmltokenizer.rb +305 -0
  109. data/lib/openid/yadis/parsehtml.rb +45 -0
  110. data/lib/openid/yadis/services.rb +42 -0
  111. data/lib/openid/yadis/xrds.rb +155 -0
  112. data/lib/openid/yadis/xri.rb +90 -0
  113. data/lib/openid/yadis/xrires.rb +106 -0
  114. data/lib/openid.rb +20 -0
  115. data/setup.rb +1551 -0
  116. data/test/data/accept.txt +124 -0
  117. data/test/data/dh.txt +29 -0
  118. data/test/data/example-xrds.xml +14 -0
  119. data/test/data/linkparse.txt +587 -0
  120. data/test/data/n2b64 +650 -0
  121. data/test/data/test1-discover.txt +137 -0
  122. data/test/data/test1-parsehtml.txt +152 -0
  123. data/test/data/test_discover/malformed_meta_tag.html +19 -0
  124. data/test/data/test_discover/openid.html +11 -0
  125. data/test/data/test_discover/openid2.html +11 -0
  126. data/test/data/test_discover/openid2_xrds.xml +12 -0
  127. data/test/data/test_discover/openid2_xrds_no_local_id.xml +11 -0
  128. data/test/data/test_discover/openid_1_and_2.html +11 -0
  129. data/test/data/test_discover/openid_1_and_2_xrds.xml +16 -0
  130. data/test/data/test_discover/openid_1_and_2_xrds_bad_delegate.xml +17 -0
  131. data/test/data/test_discover/openid_and_yadis.html +12 -0
  132. data/test/data/test_discover/openid_no_delegate.html +10 -0
  133. data/test/data/test_discover/yadis_0entries.xml +12 -0
  134. data/test/data/test_discover/yadis_2_bad_local_id.xml +15 -0
  135. data/test/data/test_discover/yadis_2entries_delegate.xml +22 -0
  136. data/test/data/test_discover/yadis_2entries_idp.xml +21 -0
  137. data/test/data/test_discover/yadis_another_delegate.xml +14 -0
  138. data/test/data/test_discover/yadis_idp.xml +12 -0
  139. data/test/data/test_discover/yadis_idp_delegate.xml +13 -0
  140. data/test/data/test_discover/yadis_no_delegate.xml +11 -0
  141. data/test/data/test_xrds/=j3h.2007.11.14.xrds +25 -0
  142. data/test/data/test_xrds/README +12 -0
  143. data/test/data/test_xrds/delegated-20060809-r1.xrds +34 -0
  144. data/test/data/test_xrds/delegated-20060809-r2.xrds +34 -0
  145. data/test/data/test_xrds/delegated-20060809.xrds +34 -0
  146. data/test/data/test_xrds/no-xrd.xml +7 -0
  147. data/test/data/test_xrds/not-xrds.xml +2 -0
  148. data/test/data/test_xrds/prefixsometimes.xrds +34 -0
  149. data/test/data/test_xrds/ref.xrds +109 -0
  150. data/test/data/test_xrds/sometimesprefix.xrds +34 -0
  151. data/test/data/test_xrds/spoof1.xrds +25 -0
  152. data/test/data/test_xrds/spoof2.xrds +25 -0
  153. data/test/data/test_xrds/spoof3.xrds +37 -0
  154. data/test/data/test_xrds/status222.xrds +9 -0
  155. data/test/data/test_xrds/subsegments.xrds +58 -0
  156. data/test/data/test_xrds/valid-populated-xrds.xml +39 -0
  157. data/test/data/trustroot.txt +153 -0
  158. data/test/data/urinorm.txt +79 -0
  159. data/test/discoverdata.rb +131 -0
  160. data/test/test_accept.rb +170 -0
  161. data/test/test_association.rb +266 -0
  162. data/test/test_associationmanager.rb +917 -0
  163. data/test/test_ax.rb +648 -0
  164. data/test/test_checkid_request.rb +294 -0
  165. data/test/test_consumer.rb +257 -0
  166. data/test/test_cryptutil.rb +119 -0
  167. data/test/test_dh.rb +86 -0
  168. data/test/test_discover.rb +838 -0
  169. data/test/test_discovery_manager.rb +262 -0
  170. data/test/test_extension.rb +46 -0
  171. data/test/test_extras.rb +35 -0
  172. data/test/test_fetchers.rb +538 -0
  173. data/test/test_filters.rb +270 -0
  174. data/test/test_idres.rb +963 -0
  175. data/test/test_kvform.rb +165 -0
  176. data/test/test_kvpost.rb +65 -0
  177. data/test/test_linkparse.rb +101 -0
  178. data/test/test_message.rb +1116 -0
  179. data/test/test_nonce.rb +89 -0
  180. data/test/test_oauth.rb +175 -0
  181. data/test/test_openid_yadis.rb +178 -0
  182. data/test/test_pape.rb +247 -0
  183. data/test/test_parsehtml.rb +80 -0
  184. data/test/test_responses.rb +63 -0
  185. data/test/test_server.rb +2457 -0
  186. data/test/test_sreg.rb +479 -0
  187. data/test/test_stores.rb +298 -0
  188. data/test/test_trustroot.rb +113 -0
  189. data/test/test_urinorm.rb +35 -0
  190. data/test/test_util.rb +145 -0
  191. data/test/test_xrds.rb +169 -0
  192. data/test/test_xri.rb +48 -0
  193. data/test/test_xrires.rb +63 -0
  194. data/test/test_yadis_discovery.rb +220 -0
  195. data/test/testutil.rb +127 -0
  196. data/test/util.rb +53 -0
  197. metadata +316 -0
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*ootao</Query>
5
+ <Status code="100"/>
6
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
7
+ <ProviderID>xri://@</ProviderID>
8
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
9
+ <CanonicalID priority="10">@!5BAD.2AA.3C72.AF46</CanonicalID>
10
+ <Service priority="10">
11
+ <Type>xri://$res*auth*($v*2.0)</Type>
12
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
13
+ <MediaType>application/xrds+xml;trust=none</MediaType>
14
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
15
+ </Service>
16
+ <Service priority="10">
17
+ <Type select="true">http://openid.net/signon/1.0</Type>
18
+ <ProviderID/>
19
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
20
+ </Service>
21
+ </XRD>
22
+ <XRD xmlns="xri://$xrd*($v*2.0)">
23
+ <Query>*test1</Query>
24
+ <Status code="100">SUCCESS</Status>
25
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
26
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
27
+ <CanonicalID>@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
28
+ <Service>
29
+ <Type select="true">http://openid.net/signon/1.0</Type>
30
+ <ProviderID/>
31
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
32
+ </Service>
33
+ </XRD>
34
+ </XRDS>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*ootao</Query>
5
+ <Status code="100"/>
6
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
7
+ <ProviderID>xri://@</ProviderID>
8
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
9
+ <CanonicalID priority="10">@!5BAD.2AA.3C72.AF46</CanonicalID>
10
+ <Service priority="10">
11
+ <Type>xri://$res*auth*($v*2.0)</Type>
12
+ <ProviderID/>
13
+ <MediaType>application/xrds+xml;trust=none</MediaType>
14
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
15
+ </Service>
16
+ <Service priority="10">
17
+ <Type select="true">http://openid.net/signon/1.0</Type>
18
+ <ProviderID/>
19
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
20
+ </Service>
21
+ </XRD>
22
+ <XRD xmlns="xri://$xrd*($v*2.0)">
23
+ <Query>*test1</Query>
24
+ <Status code="100">SUCCESS</Status>
25
+ <ProviderID>xri://!!1003</ProviderID>
26
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
27
+ <CanonicalID>@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
28
+ <Service>
29
+ <Type select="true">http://openid.net/signon/1.0</Type>
30
+ <ProviderID/>
31
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
32
+ </Service>
33
+ </XRD>
34
+ </XRDS>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xrds:XRDS
3
+ xmlns:xrds="xri://$xrds"
4
+ xmlns:openid="http://openid.net/xmlns/1.0"
5
+ xmlns:typekey="http://typekey.com/xmlns/1.0"
6
+ xmlns="xri://$xrd*($v*2.0)">
7
+ </xrds:XRDS>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <x></x>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*ootao</Query>
5
+ <Status code="100"/>
6
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
7
+ <ProviderID>xri://@</ProviderID>
8
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
9
+ <CanonicalID priority="10">@!5BAD.2AA.3C72.AF46</CanonicalID>
10
+ <Service priority="10">
11
+ <Type>xri://$res*auth*($v*2.0)</Type>
12
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
13
+ <MediaType>application/xrds+xml;trust=none</MediaType>
14
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
15
+ </Service>
16
+ <Service priority="10">
17
+ <Type select="true">http://openid.net/signon/1.0</Type>
18
+ <ProviderID/>
19
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
20
+ </Service>
21
+ </XRD>
22
+ <XRD xmlns="xri://$xrd*($v*2.0)">
23
+ <Query>*test1</Query>
24
+ <Status code="100">SUCCESS</Status>
25
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
26
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
27
+ <CanonicalID>xri://@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
28
+ <Service>
29
+ <Type select="true">http://openid.net/signon/1.0</Type>
30
+ <ProviderID/>
31
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
32
+ </Service>
33
+ </XRD>
34
+ </XRDS>
@@ -0,0 +1,109 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://@ootao*test.ref" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*ootao</Query>
5
+ <Status code="100"/>
6
+ <Expires>2006-08-15T18:56:09.000Z</Expires>
7
+ <ProviderID>xri://@</ProviderID>
8
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
9
+ <CanonicalID priority="10">@!5BAD.2AA.3C72.AF46</CanonicalID>
10
+ <Service priority="10">
11
+ <Type>xri://$res*auth*($v*2.0)</Type>
12
+ <ProviderID/>
13
+ <MediaType>application/xrds+xml;trust=none</MediaType>
14
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
15
+ </Service>
16
+ <Service priority="10">
17
+ <Type select="true">http://openid.net/signon/1.0</Type>
18
+ <ProviderID/>
19
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
20
+ </Service>
21
+ </XRD>
22
+ <XRD xmlns="xri://$xrd*($v*2.0)">
23
+ <Query>*test.ref</Query>
24
+ <Status code="100">SUCCESS</Status>
25
+ <ProviderID>xri://!!1003</ProviderID>
26
+ <LocalID>!0000.0000.3B9A.CA03</LocalID>
27
+ <CanonicalID>@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA03</CanonicalID>
28
+ <Ref>@!BAE.A650.823B.2475</Ref>
29
+ <Service>
30
+ <Type select="true">http://openid.net/signon/1.0</Type>
31
+ <ProviderID/>
32
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
33
+ </Service>
34
+ </XRD>
35
+ <XRDS ref="xri://@!BAE.A650.823B.2475" xmlns="xri://$xrds">
36
+ <XRD xmlns="xri://$xrd*($v*2.0)">
37
+ <Query>!BAE.A650.823B.2475</Query>
38
+ <Status code="100"/>
39
+ <Expires>2006-08-15T18:56:10.000Z</Expires>
40
+ <ProviderID>xri://@</ProviderID>
41
+ <LocalID priority="10">!BAE.A650.823B.2475</LocalID>
42
+ <CanonicalID priority="10">@!BAE.A650.823B.2475</CanonicalID>
43
+ <Service priority="10">
44
+ <Type select="true">(+wdnc)</Type>
45
+ <ProviderID/>
46
+ <Path select="true">(+wdnc)</Path>
47
+ <URI append="none" priority="10">http://www.tcpacompliance.us</URI>
48
+ </Service>
49
+ <Service priority="10">
50
+ <Type match="content" select="true">xri://$res*auth*($v*2.0)</Type>
51
+ <ProviderID/>
52
+ <MediaType match="content" select="false">application/xrds+xml;trust=none</MediaType>
53
+ <URI priority="10">http://dev.dready.org/cgi-bin/xri</URI>
54
+ </Service>
55
+ <Service priority="10">
56
+ <Type match="content" select="true">(+i-name)</Type>
57
+ <ProviderID/>
58
+ <Path match="content" select="true">(+i-name)</Path>
59
+ <URI append="none" priority="10">http://www.inames.net</URI>
60
+ </Service>
61
+ <Service priority="10">
62
+ <Type select="true">xri://+i-service*(+contact)*($v*1.0)</Type>
63
+ <Type match="default" select="false"/>
64
+ <ProviderID>xri://!!1001</ProviderID>
65
+ <Path select="true">(+contact)</Path>
66
+ <Path match="null" select="false"/>
67
+ <MediaType select="false">text/html</MediaType>
68
+ <MediaType match="default" select="false"/>
69
+ <URI append="none" priority="10">http://www.neustar.biz</URI>
70
+ </Service>
71
+ </XRD>
72
+ </XRDS>
73
+ <XRD xmlns="xri://$xrd*($v*2.0)">
74
+ <Query>!BAE.A650.823B.2475</Query>
75
+ <Status code="100"/>
76
+ <Expires>2006-08-15T18:56:10.000Z</Expires>
77
+ <ProviderID>xri://@</ProviderID>
78
+ <LocalID priority="10">!BAE.A650.823B.2475</LocalID>
79
+ <CanonicalID priority="10">@!BAE.A650.823B.2475</CanonicalID>
80
+ <Service priority="10">
81
+ <Type select="true">(+wdnc)</Type>
82
+ <ProviderID/>
83
+ <Path select="true">(+wdnc)</Path>
84
+ <URI append="none" priority="10">http://www.tcpacompliance.us</URI>
85
+ </Service>
86
+ <Service priority="10">
87
+ <Type match="content" select="true">xri://$res*auth*($v*2.0)</Type>
88
+ <ProviderID/>
89
+ <MediaType match="content" select="false">application/xrds+xml;trust=none</MediaType>
90
+ <URI priority="10">http://dev.dready.org/cgi-bin/xri</URI>
91
+ </Service>
92
+ <Service priority="10">
93
+ <Type match="content" select="true">(+i-name)</Type>
94
+ <ProviderID/>
95
+ <Path match="content" select="true">(+i-name)</Path>
96
+ <URI append="none" priority="10">http://www.inames.net</URI>
97
+ </Service>
98
+ <Service priority="10">
99
+ <Type select="true">xri://+i-service*(+contact)*($v*1.0)</Type>
100
+ <Type match="default" select="false"/>
101
+ <ProviderID>xri://!!1001</ProviderID>
102
+ <Path select="true">(+contact)</Path>
103
+ <Path match="null" select="false"/>
104
+ <MediaType select="false">text/html</MediaType>
105
+ <MediaType match="default" select="false"/>
106
+ <URI append="none" priority="10">http://www.neustar.biz</URI>
107
+ </Service>
108
+ </XRD>
109
+ </XRDS>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*ootao</Query>
5
+ <Status code="100"/>
6
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
7
+ <ProviderID>xri://@</ProviderID>
8
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
9
+ <CanonicalID priority="10">xri://@!5BAD.2AA.3C72.AF46</CanonicalID>
10
+ <Service priority="10">
11
+ <Type>xri://$res*auth*($v*2.0)</Type>
12
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
13
+ <MediaType>application/xrds+xml;trust=none</MediaType>
14
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
15
+ </Service>
16
+ <Service priority="10">
17
+ <Type select="true">http://openid.net/signon/1.0</Type>
18
+ <ProviderID/>
19
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
20
+ </Service>
21
+ </XRD>
22
+ <XRD xmlns="xri://$xrd*($v*2.0)">
23
+ <Query>*test1</Query>
24
+ <Status code="100">SUCCESS</Status>
25
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
26
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
27
+ <CanonicalID>@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
28
+ <Service>
29
+ <Type select="true">http://openid.net/signon/1.0</Type>
30
+ <ProviderID/>
31
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
32
+ </Service>
33
+ </XRD>
34
+ </XRDS>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://=keturn*isDrummond" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*keturn</Query>
5
+ <ProviderID>xri://=</ProviderID>
6
+ <LocalID>!E4</LocalID>
7
+ <CanonicalID>=!E4</CanonicalID>
8
+
9
+ <Service>
10
+ <Type>xri://$res*auth*($v*2.0)</Type>
11
+ <URI>http://keturn.example.com/resolve/</URI>
12
+ <ProviderID>=!E4</ProviderID>
13
+ </Service>
14
+ </XRD>
15
+ <XRD xmlns="xri://$xrd*($v*2.0)">
16
+ <Query>*isDrummond</Query>
17
+ <ProviderID>=!E4</ProviderID>
18
+ <LocalID>!D2</LocalID>
19
+ <CanonicalID>=!D2</CanonicalID>
20
+ <Service>
21
+ <Type>http://openid.net/signon/1.0</Type>
22
+ <URI>http://keturn.example.com/openid</URI>
23
+ </Service>
24
+ </XRD>
25
+ </XRDS>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://=keturn*isDrummond" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*keturn</Query>
5
+ <ProviderID>xri://=</ProviderID>
6
+ <LocalID>!E4</LocalID>
7
+ <CanonicalID>=!E4</CanonicalID>
8
+
9
+ <Service>
10
+ <Type>xri://$res*auth*($v*2.0)</Type>
11
+ <URI>http://keturn.example.com/resolve/</URI>
12
+ <ProviderID>xri://=</ProviderID>
13
+ </Service>
14
+ </XRD>
15
+ <XRD xmlns="xri://$xrd*($v*2.0)">
16
+ <Query>*isDrummond</Query>
17
+ <ProviderID>xri://=</ProviderID>
18
+ <LocalID>!D2</LocalID>
19
+ <CanonicalID>=!D2</CanonicalID>
20
+ <Service>
21
+ <Type>http://openid.net/signon/1.0</Type>
22
+ <URI>http://keturn.example.com/openid</URI>
23
+ </Service>
24
+ </XRD>
25
+ </XRDS>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://=keturn*isDrummond" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*keturn</Query>
5
+ <ProviderID>xri://@</ProviderID>
6
+ <LocalID>@E4</LocalID>
7
+ <CanonicalID>@!E4</CanonicalID>
8
+
9
+ <Service>
10
+ <Type>xri://$res*auth*($v*2.0)</Type>
11
+ <URI>http://keturn.example.com/resolve/</URI>
12
+ <ProviderID>@!E4</ProviderID>
13
+ </Service>
14
+ </XRD>
15
+ <XRD xmlns="xri://$xrd*($v*2.0)">
16
+ <Query>*is</Query>
17
+ <ProviderID>@!E4</ProviderID>
18
+ <LocalID>!D2</LocalID>
19
+ <CanonicalID>=!C0</CanonicalID>
20
+ <CanonicalID>=!E4!01</CanonicalID>
21
+ <Service>
22
+ <Type>xri://$res*auth*($v*2.0)</Type>
23
+ <URI>http://keturn.example.com/resolve/</URI>
24
+ <ProviderID>@!C0</ProviderID>
25
+ </Service>
26
+ </XRD>
27
+ <XRD xmlns="xri://$xrd*($v*2.0)">
28
+ <Query>*drummond</Query>
29
+ <ProviderID>@!C0</ProviderID>
30
+ <LocalID>!D2</LocalID>
31
+ <CanonicalID>@!C0!D2</CanonicalID>
32
+ <Service>
33
+ <Type>http://openid.net/signon/1.0</Type>
34
+ <URI>http://keturn.example.com/openid</URI>
35
+ </Service>
36
+ </XRD>
37
+ </XRDS>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://=x" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*x</Query>
5
+ <Status code="222">The subsegment does not exist</Status>
6
+ <Expires>2006-08-18T00:02:35.000Z</Expires>
7
+ <ProviderID>xri://=</ProviderID>
8
+ </XRD>
9
+ </XRDS>
@@ -0,0 +1,58 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <XRDS ref="xri://=nishitani*masaki" xmlns="xri://$xrds">
3
+ <XRD xmlns="xri://$xrd*($v*2.0)">
4
+ <Query>*nishitani</Query>
5
+ <Status code="100"/>
6
+ <Expires>2007-12-25T11:33:39.000Z</Expires>
7
+ <ProviderID>xri://=</ProviderID>
8
+ <LocalID priority="10">!E117.EF2F.454B.C707</LocalID>
9
+ <CanonicalID priority="10">=!E117.EF2F.454B.C707</CanonicalID>
10
+ <Service priority="10">
11
+ <Type select="true">http://openid.net/signon/1.0</Type>
12
+ <ProviderID>xri://!!1003!103</ProviderID>
13
+ <URI append="none" priority="1">https://linksafe.ezibroker.net/server/</URI>
14
+ </Service>
15
+ <Service priority="10">
16
+ <Type select="true">xri://$res*auth*($v*2.0)</Type>
17
+ <ProviderID>xri://!!1003!103</ProviderID>
18
+ <MediaType>application/xrds+xml;trust=none</MediaType>
19
+ <URI priority="10">http://resolve.ezibroker.net/resolve/=nishitani/</URI>
20
+ </Service>
21
+ <Service priority="1">
22
+ <Type match="content" select="true">xri://+i-service*(+forwarding)*($v*1.0)</Type>
23
+ <Type match="null" select="false"/>
24
+ <ProviderID>xri://!!1003!103</ProviderID>
25
+ <Path match="content">(+index)</Path>
26
+ <Path match="default"/>
27
+ <URI append="qxri" priority="1">http://linksafe-forward.ezibroker.net/forwarding/</URI>
28
+ </Service>
29
+ </XRD>
30
+ <XRD xmlns="xri://$xrd*($v*2.0)">
31
+ <Query>*masaki</Query>
32
+ <Status code="100">SUCCESS</Status>
33
+ <ProviderID>xri://!!1003</ProviderID>
34
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
35
+ <CanonicalID>=!E117.EF2F.454B.C707!0000.0000.3B9A.CA01</CanonicalID>
36
+ <Service>
37
+ <Type select="true">http://openid.net/signon/1.0</Type>
38
+ <ProviderID>xri://!!1003!103</ProviderID>
39
+ <URI append="none" priority="1">https://linksafe.ezibroker.net/server/</URI>
40
+ </Service>
41
+ <Service>
42
+ <Type select="true">xri://+i-service*(+contact)*($v*1.0)</Type>
43
+ <Type match="null"/>
44
+ <ProviderID>xri://!!1003!103</ProviderID>
45
+ <Path select="true">(+contact)</Path>
46
+ <Path match="null"/>
47
+ <URI append="authority" priority="1">http://linksafe-contact.ezibroker.net/contact/</URI>
48
+ </Service>
49
+ <Service priority="1">
50
+ <Type match="content" select="true">xri://+i-service*(+forwarding)*($v*1.0)</Type>
51
+ <Type match="null" select="false"/>
52
+ <ProviderID>xri://!!1003!103</ProviderID>
53
+ <Path match="content">(+index)</Path>
54
+ <Path match="default"/>
55
+ <URI append="qxri" priority="1">http://linksafe-forward.ezibroker.net/forwarding/</URI>
56
+ </Service>
57
+ </XRD>
58
+ </XRDS>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xrds:XRDS
3
+ xmlns:xrds="xri://$xrds"
4
+ xmlns:openid="http://openid.net/xmlns/1.0"
5
+ xmlns:typekey="http://typekey.com/xmlns/1.0"
6
+ xmlns="xri://$xrd*($v*2.0)">
7
+ <XRD>
8
+
9
+ <Service priority="0">
10
+ <Type>http://openid.net/signon/1.0</Type>
11
+ <URI>http://www.myopenid.com/server</URI>
12
+ <openid:Delegate>http://josh.myopenid.com/</openid:Delegate>
13
+ </Service>
14
+
15
+ <Service priority="20">
16
+ <Type>http://lid.netmesh.org/sso/2.0b5</Type>
17
+ <Type>http://lid.netmesh.org/2.0b5</Type>
18
+ <URI>http://mylid.net/josh</URI>
19
+ </Service>
20
+
21
+ <Service priority="10">
22
+ <Type>http://openid.net/signon/1.0</Type>
23
+ <URI>http://www.livejournal.com/openid/server.bml</URI>
24
+ <openid:Delegate>http://www.livejournal.com/users/nedthealpaca/</openid:Delegate>
25
+ </Service>
26
+
27
+ <Service priority="15">
28
+ <Type>http://typekey.com/services/1.0</Type>
29
+ <typekey:MemberName>joshhoyt</typekey:MemberName>
30
+ </Service>
31
+
32
+ <Service priority="5">
33
+ <Type>http://openid.net/signon/1.0</Type>
34
+ <URI>http://www.schtuff.com/openid</URI>
35
+ <openid:Delegate>http://users.schtuff.com/josh</openid:Delegate>
36
+ </Service>
37
+
38
+ </XRD>
39
+ </xrds:XRDS>
@@ -0,0 +1,153 @@
1
+ ========================================
2
+ Trust root parsing checking
3
+ ========================================
4
+
5
+ ----------------------------------------
6
+ 23: Does not parse
7
+ ----------------------------------------
8
+ baz.org
9
+ *.foo.com
10
+ http://*.schtuff.*/
11
+ ftp://foo.com
12
+ ftp://*.foo.com
13
+ http://*.foo.com:80:90/
14
+ foo.*.com
15
+ http://foo.*.com
16
+ http://www.*
17
+ http://*foo.com/
18
+ http://foo.com/invalid#fragment
19
+ http://..it/
20
+ http://.it/
21
+ http://*:8081/
22
+ http://*:80
23
+ http://localhost:1900foo/
24
+ http://foo.com\/
25
+ http://π.pi.com/
26
+ http://lambda.com/Λ
27
+
28
+
29
+
30
+ 5
31
+
32
+ ----------------------------------------
33
+ 14: Insane
34
+ ----------------------------------------
35
+ http:///
36
+ http://*/
37
+ https://*/
38
+ http://*.com
39
+ http://*.com/
40
+ https://*.com/
41
+ http://*.com.au/
42
+ http://*.co.uk/
43
+ http://*.foo.notatld/
44
+ https://*.foo.notatld/
45
+ http://*.museum/
46
+ https://*.museum/
47
+ http://www.schtuffcom/
48
+ http://it/
49
+
50
+ ----------------------------------------
51
+ 18: Sane
52
+ ----------------------------------------
53
+ http://*.schtuff.com./
54
+ http://*.schtuff.com/
55
+ http://*.foo.schtuff.com/
56
+ http://*.schtuff.com
57
+ http://www.schtuff.com/
58
+ http://www.schtuff.com./
59
+ http://www.schutff.com
60
+ http://*.this.that.schtuff.com/
61
+ http://*.foo.com/path
62
+ http://*.foo.com/path?action=foo2
63
+ http://x.foo.com/path?action=foo2
64
+ http://x.foo.com/path?action=%3D
65
+ http://localhost:8081/
66
+ http://localhost:8082/?action=openid
67
+ https://foo.com/
68
+ http://kink.fm/should/be/sane
69
+ http://beta.lingu.no/
70
+ http://goathack.livejournal.org:8020/openid/login.bml
71
+
72
+ ========================================
73
+ return_to matching
74
+ ========================================
75
+
76
+ ----------------------------------------
77
+ 46: matches
78
+ ----------------------------------------
79
+ http://*/ http://cnn.com/
80
+ http://*/ http://livejournal.com/
81
+ http://*/ http://met.museum/
82
+ http://localhost:8081/x?action=openid http://localhost:8081/x?action=openid
83
+ http://*.foo.com http://b.foo.com
84
+ http://*.foo.com http://b.foo.com/
85
+ http://*.foo.com/ http://b.foo.com
86
+ http://b.foo.com http://b.foo.com
87
+ http://b.foo.com http://b.foo.com/
88
+ http://b.foo.com/ http://b.foo.com
89
+ http://*.b.foo.com http://b.foo.com
90
+ http://*.b.foo.com http://b.foo.com/
91
+ http://*.b.foo.com/ http://b.foo.com
92
+ http://*.b.foo.com http://x.b.foo.com
93
+ http://*.b.foo.com http://w.x.b.foo.com
94
+ http://*.bar.co.uk http://www.bar.co.uk
95
+ http://*.uoregon.edu http://x.cs.uoregon.edu
96
+ http://x.com/abc http://x.com/abc
97
+ http://x.com/abc http://x.com/abc/def
98
+ http://10.0.0.1/abc http://10.0.0.1/abc
99
+ http://*.x.com http://x.com/gallery
100
+ http://*.x.com http://foo.x.com/gallery
101
+ http://foo.x.com http://foo.x.com/gallery/xxx
102
+ http://*.x.com/gallery http://foo.x.com/gallery
103
+ http://localhost:8082/?action=openid http://localhost:8082/?action=openid
104
+ http://goathack.livejournal.org:8020/ http://goathack.livejournal.org:8020/openid/login.bml
105
+ https://foo.com https://foo.com
106
+ http://Foo.com http://foo.com
107
+ http://foo.com http://Foo.com
108
+ http://foo.com:80/ http://foo.com/
109
+ http://foo.com/?x=y http://foo.com/?x=y&a=b
110
+ http://foo.com/x http://foo.com/x?y
111
+ http://mylid.net/j3h. http://mylid.net/j3h.?x=y
112
+ http://j3h.us http://j3h.us?ride=unicycle
113
+ https://www.filmclans.com:443/mattmartin/FilmClans https://www.filmclans.com/mattmartin/FilmClans/Logon.aspx?nonce=BVjqSOee
114
+ http://foo.com:80 http://foo.com
115
+ http://foo.com http://foo.com:80
116
+ http://foo.com http://foo.com/
117
+ http://foo.com/ http://foo.com
118
+ http://foo.com/ http://foo.com:80
119
+ http://foo.com:80/ http://foo.com:80/stuff
120
+ http://foo.com:80/ http://foo.com/stuff
121
+ http://foo.com/path http://foo.com/path/extra
122
+ http://foo.com/path2 http://foo.com/path2?extra=query
123
+ http://foo.com/path2 http://foo.com/path2/?extra=query
124
+ http://foo.com/ HTTP://foo.com/
125
+
126
+ ----------------------------------------
127
+ 25: does not match
128
+ ----------------------------------------
129
+ http://*/ ftp://foo.com/
130
+ http://*/ xxx
131
+ http://foo.com/ http://oo.com/
132
+ http://*.x.com/abc http://foo.x.com
133
+ http://*.x.com/abc http://*.x.com
134
+ http://*.com/ http://*.com/
135
+ http://x.com/abc http://x.com/
136
+ http://x.com/abc http://x.com/a
137
+ http://x.com/abc http://x.com/ab
138
+ http://x.com/abc http://x.com/abcd
139
+ http://*.cs.uoregon.edu http://x.uoregon.edu
140
+ http://*.foo.com http://bar.com
141
+ http://*.foo.com http://www.bar.com
142
+ http://*.bar.co.uk http://xxx.co.uk
143
+ https://foo.com http://foo.com
144
+ http://foo.com https://foo.com
145
+ http://foo.com:81 http://foo.com:80
146
+ http://foo.com/?a=b http://foo.com/?x=y
147
+ http://foo.com/?a=b http://foo.com/?x=y&a=b
148
+ http://foo.com/?a=b http://foo.com/
149
+ http://*.oo.com/ http://foo.com/
150
+ http://foo.com/* http://foo.com/anything
151
+ http://foo.com http://foo.com:443
152
+ https://foo.com https://foo.com:80
153
+ http://foo.com/path/xev http://foo.com/path?extra=more