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:
jsdelfino 2011-03-21 07:41:48 +00:00
parent 148ad11441
commit a42a087009
4 changed files with 5 additions and 5 deletions

View file

@ -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

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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);
}