Let meta.openid set X-XRDS-Location header

Adds an optional xrds-location parameter to the openid meta handler,
which allows for XRDS delegation.

A good document on XRDS is
http://www.windley.com/archives/2007/05/using_xrds.shtml

Signed-off-by: martin f. krafft <madduck@madduck.net>
master
martin f. krafft 2008-03-11 14:00:30 +01:00 committed by Joey Hess
parent 0cac528b03
commit 2325525713
2 changed files with 12 additions and 3 deletions

View File

@ -145,6 +145,10 @@ sub preprocess (@) { #{{{
push @{$metaheaders{$page}}, '<link href="'.encode_entities($value).
'" rel="openid.delegate" />';
}
if (exists $params{xrds-location} && safeurl($params{xrds-location})) {
push @{$metaheaders{$page}}, '<meta http-equiv="X-XRDS-Location"'.
'content="'.encode_entities($params{xrds-location}).'" />';
}
}
elsif ($key eq 'redir') {
return "" if $page ne $destpage;

View File

@ -64,10 +64,15 @@ Supported fields:
* openid
Adds html &lt;link&gt; tags to perform OpenID delegation to an external
OpenID server. This lets you use an ikiwiki page as your OpenID. Example:
OpenID server. An optional `xrds-location` parameter lets you specify the
location of any [eXtensible Resource
DescriptorS](http://www.windley.com/archives/2007/05/using_xrds.shtml).
This lets you use an ikiwiki page as your OpenID. Example:
\\[[meta openid="http://joeyh.myopenid.com/"
server="http://www.myopenid.com/server"]]
server="http://www.myopenid.com/server"
xrds-location="http://www.myopenid.com/xrds?username=joeyh.myopenid.com""]]
* link