pelle-ruby-openid 2.1.8

Sign up to get free protection for your applications and to get access to all the features.
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,587 @@
1
+ Num Tests: 72
2
+
3
+ OpenID link parsing test cases
4
+ Copyright (C) 2005-2008, JanRain, Inc.
5
+ See COPYING for license information.
6
+
7
+ File format
8
+ -----------
9
+
10
+ All text before the first triple-newline (this chunk) should be ignored.
11
+
12
+ This file may be interpreted as Latin-1 or UTF-8.
13
+
14
+ Test cases separated by three line separators (`\n\n\n'). The test
15
+ cases consist of a headers section followed by a data block. These are
16
+ separated by a double newline. The headers consist of the header name,
17
+ followed by a colon, a space, the value, and a newline. There must be
18
+ one, and only one, `Name' header for a test case. There may be zero or
19
+ more link headers. The `Link' header consists of whitespace-separated
20
+ attribute pairs. A link header with an empty string as a value
21
+ indicates an empty but present link tag. The attribute pairs are `='
22
+ separated and not quoted.
23
+
24
+ Optional Links and attributes have a trailing `*'. A compilant
25
+ implementation may produce this as output or may not. A compliant
26
+ implementation will not produce any output that is absent from this
27
+ file.
28
+
29
+
30
+ Name: No link tag at all
31
+
32
+ <html>
33
+ <head>
34
+ </head>
35
+ </html>
36
+
37
+
38
+ Name: Link element first
39
+
40
+ <link>
41
+
42
+
43
+ Name: Link inside HTML, not head
44
+
45
+ <html>
46
+ <link>
47
+
48
+
49
+ Name: Link inside head, not html
50
+
51
+ <head>
52
+ <link>
53
+
54
+
55
+ Name: Link inside html, after head
56
+
57
+ <html>
58
+ <head>
59
+ </head>
60
+ <link>
61
+
62
+
63
+ Name: Link inside html, before head
64
+
65
+ <html>
66
+ <link>
67
+ <head>
68
+
69
+
70
+ Name: Link before html and head
71
+
72
+ <link>
73
+ <html>
74
+ <head>
75
+
76
+
77
+ Name: Link after html document with head
78
+
79
+ <html>
80
+ <head>
81
+ </head>
82
+ </html>
83
+ <link>
84
+
85
+
86
+ Name: Link inside html inside head, inside another html
87
+
88
+ <html>
89
+ <head>
90
+ <html>
91
+ <link>
92
+
93
+
94
+ Name: Link inside html inside head
95
+
96
+ <head>
97
+ <html>
98
+ <link>
99
+
100
+
101
+ Name: link inside body inside head inside html
102
+
103
+ <html>
104
+ <head>
105
+ <body>
106
+ <link>
107
+
108
+
109
+ Name: Link inside head inside head inside html
110
+
111
+ <html>
112
+ <head>
113
+ <head>
114
+ <link>
115
+
116
+
117
+ Name: Link inside script inside head inside html
118
+
119
+ <html>
120
+ <head>
121
+ <script>
122
+ <link>
123
+ </script>
124
+
125
+
126
+ Name: Link inside comment inside head inside html
127
+
128
+ <html>
129
+ <head/>
130
+ <link>
131
+
132
+
133
+ Name: Link inside of head after short head
134
+
135
+ <html>
136
+ <head/>
137
+ <head>
138
+ <link>
139
+
140
+
141
+ Name: Plain vanilla
142
+ Link:
143
+
144
+ <html>
145
+ <head>
146
+ <link>
147
+
148
+
149
+ Name: Ignore tags in the <script:... > namespace
150
+ Link*:
151
+
152
+ <html>
153
+ <head>
154
+ <script:paddypan>
155
+ <link>
156
+ </script:paddypan>
157
+
158
+
159
+ Name: Short link tag
160
+ Link:
161
+
162
+ <html>
163
+ <head>
164
+ <link/>
165
+
166
+
167
+ Name: Spaces in the HTML tag
168
+ Link:
169
+
170
+ <html >
171
+ <head>
172
+ <link>
173
+
174
+
175
+ Name: Spaces in the head tag
176
+ Link:
177
+
178
+ <html>
179
+ <head >
180
+ <link>
181
+
182
+
183
+ Name: Spaces in the link tag
184
+ Link:
185
+
186
+ <html>
187
+ <head>
188
+ <link >
189
+
190
+
191
+ Name: No whitespace
192
+ Link:
193
+
194
+ <html><head><link>
195
+
196
+
197
+ Name: Closed head tag
198
+ Link:
199
+
200
+ <html>
201
+ <head>
202
+ <link>
203
+ </head>
204
+
205
+
206
+ Name: One good, one bad (after close head)
207
+ Link:
208
+
209
+ <html>
210
+ <head>
211
+ <link>
212
+ </head>
213
+ <link>
214
+
215
+
216
+ Name: One good, one bad (after open body)
217
+ Link:
218
+
219
+ <html>
220
+ <head>
221
+ <link>
222
+ <body>
223
+ <link>
224
+
225
+
226
+ Name: ill formed (missing close head)
227
+ Link:
228
+
229
+ <html>
230
+ <head>
231
+ <link>
232
+ </html>
233
+
234
+
235
+ Name: Ill formed (no close head, link after </html>)
236
+ Link:
237
+
238
+ <html>
239
+ <head>
240
+ <link>
241
+ </html>
242
+ <link>
243
+
244
+
245
+ Name: Ignore random tags inside of html
246
+ Link:
247
+
248
+ <html>
249
+ <delicata>
250
+ <head>
251
+ <title>
252
+ <link>
253
+
254
+
255
+ Name: case-folding
256
+ Link*:
257
+
258
+ <HtMl>
259
+ <hEaD>
260
+ <LiNk>
261
+
262
+
263
+ Name: unexpected tags
264
+ Link:
265
+
266
+ <butternut>
267
+ <html>
268
+ <summer>
269
+ <head>
270
+ <turban>
271
+ <link>
272
+
273
+
274
+ Name: un-closed script tags
275
+ Link*:
276
+
277
+ <html>
278
+ <head>
279
+ <script>
280
+ <link>
281
+
282
+
283
+ Name: un-closed script tags (no whitespace)
284
+ Link*:
285
+
286
+ <html><head><script><link>
287
+
288
+
289
+ Name: un-closed comment
290
+ Link*:
291
+
292
+ <html>
293
+ <head>
294
+ <!--
295
+ <link>
296
+
297
+
298
+ Name: un-closed CDATA
299
+ Link*:
300
+
301
+ <html>
302
+ <head>
303
+ <![CDATA[
304
+ <link>
305
+
306
+
307
+ Name: cdata-like
308
+ Link*:
309
+
310
+ <html>
311
+ <head>
312
+ <![ACORN[
313
+ <link>
314
+ ]]>
315
+
316
+
317
+ Name: comment close only
318
+ Link:
319
+
320
+ <html>
321
+ <head>
322
+ <link>
323
+ -->
324
+
325
+
326
+ Name: Vanilla, two links
327
+ Link:
328
+ Link:
329
+
330
+ <html>
331
+ <head>
332
+ <link>
333
+ <link>
334
+
335
+
336
+ Name: extra tag, two links
337
+ Link:
338
+ Link:
339
+
340
+ <html>
341
+ <gold nugget>
342
+ <head>
343
+ <link>
344
+ <link>
345
+
346
+
347
+ Name: case-fold, body ends, two links
348
+ Link:
349
+ Link*:
350
+
351
+ <html>
352
+ <head>
353
+ <link>
354
+ <LiNk>
355
+ <body>
356
+ <link>
357
+
358
+
359
+ Name: simple, non-quoted rel
360
+ Link: rel=openid.server
361
+
362
+ <html><head><link rel=openid.server>
363
+
364
+
365
+ Name: short tag has rel
366
+ Link: rel=openid.server
367
+
368
+ <html><head><link rel=openid.server/>
369
+
370
+
371
+ Name: short tag w/space has rel
372
+ Link: rel=openid.server
373
+
374
+ <html><head><link rel=openid.server />
375
+
376
+
377
+ Name: extra non-attribute, has rel
378
+ Link: rel=openid.server hubbard*=hubbard
379
+
380
+ <html><head><link hubbard rel=openid.server>
381
+
382
+
383
+ Name: non-attr, has rel, short
384
+ Link: rel=openid.server hubbard*=hubbard
385
+
386
+ <html><head><link hubbard rel=openid.server/>
387
+
388
+
389
+ Name: non-attr, has rel, short, space
390
+ Link: rel=openid.server hubbard*=hubbard
391
+
392
+ <html><head><link hubbard rel=openid.server />
393
+
394
+
395
+ Name: misplaced slash has rel
396
+ Link: rel=openid.server
397
+
398
+ <html><head><link / rel=openid.server>
399
+
400
+
401
+ Name: quoted rel
402
+ Link: rel=openid.server
403
+
404
+ <html><head><link rel="openid.server">
405
+
406
+
407
+ Name: single-quoted rel
408
+ Link: rel=openid.server
409
+
410
+ <html><head><link rel='openid.server'>
411
+
412
+
413
+ Name: two links w/ rel
414
+ Link: x=y
415
+ Link: a=b
416
+
417
+ <html><head><link x=y><link a=b>
418
+
419
+
420
+ Name: non-entity
421
+ Link: x=&y
422
+
423
+ <html><head><link x=&y>
424
+
425
+
426
+ Name: quoted non-entity
427
+ Link: x=&y
428
+
429
+ <html><head><link x="&y">
430
+
431
+
432
+ Name: quoted entity
433
+ Link: x=&
434
+
435
+ <html><head><link x="&amp;">
436
+
437
+
438
+ Name: entity not processed
439
+ Link: x=&#26;
440
+
441
+ <html><head><link x="&#26;">
442
+
443
+
444
+ Name: &lt;
445
+ Link: x=<
446
+
447
+ <html><head><link x="&lt;">
448
+
449
+
450
+ Name: &gt;
451
+ Link: x=>
452
+
453
+ <html><head><link x="&gt;">
454
+
455
+
456
+ Name: &quot;
457
+ Link: x="
458
+
459
+ <html><head><link x="&quot;">
460
+
461
+
462
+ Name: &amp;&quot;
463
+ Link: x=&"
464
+
465
+ <html><head><link x="&amp;&quot;">
466
+
467
+
468
+ Name: mixed entity and non-entity
469
+ Link: x=&"&hellip;>
470
+
471
+ <html><head><link x="&amp;&quot;&hellip;&gt;">
472
+
473
+
474
+ Name: mixed entity and non-entity (w/normal chars)
475
+ Link: x=x&"&hellip;>x
476
+
477
+ <html><head><link x="x&amp;&quot;&hellip;&gt;x">
478
+
479
+
480
+ Name: broken tags
481
+ Link*: x=y
482
+ Link*: x=y<
483
+
484
+ <html><head><link x=y<>
485
+
486
+
487
+ Name: missing close pointy
488
+ Link*: x=y
489
+ Link*: x=y<link z=y
490
+ Link*: z=y
491
+
492
+ <html><head><link x=y<link z=y />
493
+
494
+
495
+ Name: missing attribute value
496
+ Link: x=y y*=y
497
+ Link: x=y
498
+
499
+ <html><head><link x=y y=><link x=y />
500
+
501
+
502
+ Name: Missing close pointy (no following)
503
+ Link*: x=y
504
+
505
+ <html><head><link x=y
506
+
507
+
508
+ Name: Should be quoted
509
+ Link*: x=<
510
+
511
+ <html><head><link x="<">
512
+
513
+
514
+ Name: Should be quoted (2)
515
+ Link*: x=>
516
+ Link*: x=x
517
+
518
+ <html><head><link x=">">
519
+
520
+
521
+ Name: Repeated attribute
522
+ Link: x=y
523
+
524
+ <html><head><link x=z x=y>
525
+
526
+
527
+ Name: Repeated attribute (2)
528
+ Link: x=y
529
+
530
+ <html><head><link x=y x=y>
531
+
532
+
533
+ Name: Two attributes
534
+ Link: x=y y=z
535
+
536
+ <html><head><link x=y y=z>
537
+
538
+
539
+ Name: Well-formed link rel="openid.server"
540
+ Link: rel=openid.server href=http://www.myopenid.com/server
541
+
542
+ <html>
543
+ <head>
544
+ <link rel="openid.server"
545
+ href="http://www.myopenid.com/server" />
546
+ </head>
547
+ </html>
548
+
549
+
550
+ Name: Well-formed link rel="openid.server" and "openid.delegate"
551
+ Link: rel=openid.server href=http://www.myopenid.com/server
552
+ Link: rel=openid.delegate href=http://example.myopenid.com/
553
+
554
+ <html><head><link rel="openid.server"
555
+ href="http://www.myopenid.com/server" />
556
+ <link rel="openid.delegate" href="http://example.myopenid.com/" />
557
+ </head></html>
558
+
559
+
560
+ Name: from brian's livejournal page
561
+ Link: rel=stylesheet href=http://www.livejournal.com/~serotta/res/319998/stylesheet?1130478711 type=text/css
562
+ Link: rel=openid.server href=http://www.livejournal.com/openid/server.bml
563
+
564
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
565
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
566
+ <html xmlns="http://www.w3.org/1999/xhtml">
567
+ <head>
568
+ <link rel="stylesheet"
569
+ href="http://www.livejournal.com/~serotta/res/319998/stylesheet?1130478711"
570
+ type="text/css" />
571
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
572
+ <meta name="foaf:maker"
573
+ content="foaf:mbox_sha1sum '12f8abdacb5b1a806711e23249da592c0d316260'" />
574
+ <meta name="robots" content="noindex, nofollow, noarchive" />
575
+ <meta name="googlebot" content="nosnippet" />
576
+ <link rel="openid.server"
577
+ href="http://www.livejournal.com/openid/server.bml" />
578
+ <title>Brian</title>
579
+ </head>
580
+
581
+
582
+ Name: non-ascii (Latin-1 or UTF8)
583
+ Link: x=®
584
+
585
+ <html><head><link x="®">
586
+
587
+