aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/openid.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-11 13:53:56 -0400
committerJoey Hess <joey@kitenet.net>2010-06-11 13:53:56 -0400
commit475b4199e1624350b928a002fe83033ee3389b31 (patch)
tree75ecd0e934da589eff7a2338032ff09ea14a8a40 /IkiWiki/Plugin/openid.pm
parenta31ce0e97d1e1c476a1fcdb52a2d78cadb845557 (diff)
downloadikiwiki-475b4199e1624350b928a002fe83033ee3389b31.tar
ikiwiki-475b4199e1624350b928a002fe83033ee3389b31.tar.gz
openid: Add openid_realm and openid_cgiurl configuration options, useful in a few edge case setups.
Diffstat (limited to 'IkiWiki/Plugin/openid.pm')
-rw-r--r--IkiWiki/Plugin/openid.pm27
1 files changed, 24 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/openid.pm b/IkiWiki/Plugin/openid.pm
index e10e21f4d..57cb139ca 100644
--- a/IkiWiki/Plugin/openid.pm
+++ b/IkiWiki/Plugin/openid.pm
@@ -40,6 +40,18 @@ sub getsetup () {
rebuild => 0,
section => "auth",
},
+ openid_realm => {
+ type => "string",
+ description => "url of openid realm (default is cgiurl)",
+ safe => 0,
+ rebuild => 0,
+ },
+ openid_cgiurl => {
+ type => "string",
+ description => "url to ikiwiki cgi to use for openid authentication (default is cgiurl)",
+ safe => 0,
+ rebuild => 0,
+ },
}
sub openid_selector {
@@ -135,9 +147,15 @@ sub validate ($$$;$) {
);
}
+ my $cgiurl=$config{openid_cgiurl};
+ $cgiurl=$config{cgiurl} if ! defined $cgiurl;
+
+ my $trust_root=$config{openid_realm};
+ $trust_root=$cgiurl if ! defined $trust_root;
+
my $check_url = $claimed_identity->check_url(
- return_to => IkiWiki::cgiurl(do => "postsignin"),
- trust_root => $config{cgiurl},
+ return_to => "$cgiurl?do=postsignin",
+ trust_root => $trust_root,
delayed_return => 1,
);
# Redirect the user to the OpenID server, which will
@@ -220,12 +238,15 @@ sub getobj ($$) {
$secret=rand;
$session->param(openid_secret => $secret);
}
+
+ my $cgiurl=$config{openid_cgiurl};
+ $cgiurl=$config{cgiurl} if ! defined $cgiurl;
return Net::OpenID::Consumer->new(
ua => $ua,
args => $q,
consumer_secret => sub { return shift()+$secret },
- required_root => $config{cgiurl},
+ required_root => $cgiurl,
);
}