Support authentication across wildcard domains.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1083692 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
148ad11441
commit
a42a087009
4 changed files with 5 additions and 5 deletions
|
@ -35,7 +35,7 @@ cat >>$root/conf/auth.conf <<EOF
|
|||
AuthType Open
|
||||
AuthName "$host"
|
||||
Session On
|
||||
SessionCookieName TuscanyOpenAuth path=/;secure=TRUE
|
||||
SessionCookieName TuscanyOpenAuth domain=.$host;path=/;secure=TRUE
|
||||
SessionCryptoPassphrase $pw
|
||||
AuthOpenAuth On
|
||||
AuthOpenAuthLoginPage /login
|
||||
|
|
|
@ -73,11 +73,11 @@ const maybe<string> sessionID(const request_rec* r) {
|
|||
/**
|
||||
* Convert a session id to a cookie string.
|
||||
*/
|
||||
const string cookie(const string& sid) {
|
||||
const string cookie(const string& sid, const string& domain) {
|
||||
const time_t t = time(NULL) + 86400;
|
||||
char exp[32];
|
||||
strftime(exp, 32, "%a, %d-%b-%Y %H:%M:%S GMT", gmtime(&t));
|
||||
const string c = string("TuscanyOpenAuth=") + sid + string(";path=/;expires=" + string(exp)) + ";secure=TRUE";
|
||||
const string c = string("TuscanyOpenAuth=") + sid + ";domain=." + domain + ";path=/;expires=" + string(exp) + ";secure=TRUE";
|
||||
debug(c, "openauth::cookie");
|
||||
return c;
|
||||
}
|
||||
|
|
|
@ -378,7 +378,7 @@ const failable<int> access_token(const list<list<value> >& args, request_rec* r,
|
|||
return mkfailure<int>(reason(prc));
|
||||
|
||||
// Send session ID to the client in a cookie
|
||||
apr_table_set(r->err_headers_out, "Set-Cookie", c_str(openauth::cookie(sid)));
|
||||
apr_table_set(r->err_headers_out, "Set-Cookie", c_str(openauth::cookie(sid, httpd::hostName(sc.server))));
|
||||
return httpd::externalRedirect(httpd::url(r->uri, r), r);
|
||||
}
|
||||
|
||||
|
|
|
@ -230,7 +230,7 @@ const failable<int> access_token(const list<list<value> >& args, request_rec* r,
|
|||
return mkfailure<int>(reason(prc));
|
||||
|
||||
// Send session ID to the client in a cookie
|
||||
apr_table_set(r->err_headers_out, "Set-Cookie", c_str(openauth::cookie(sid)));
|
||||
apr_table_set(r->err_headers_out, "Set-Cookie", c_str(openauth::cookie(sid, httpd::hostName(sc.server))));
|
||||
return httpd::externalRedirect(httpd::url(r->uri, r), r);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue