You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2011/03/21 08:41:48 UTC

svn commit: r1083692 - in /tuscany/sca-cpp/trunk/modules: http/open-auth-conf http/openauth.hpp oauth/mod-oauth1.cpp oauth/mod-oauth2.cpp

Author: jsdelfino
Date: Mon Mar 21 07:41:48 2011
New Revision: 1083692

URL: http://svn.apache.org/viewvc?rev=1083692&view=rev
Log:
Support authentication across wildcard domains.

Modified:
    tuscany/sca-cpp/trunk/modules/http/open-auth-conf
    tuscany/sca-cpp/trunk/modules/http/openauth.hpp
    tuscany/sca-cpp/trunk/modules/oauth/mod-oauth1.cpp
    tuscany/sca-cpp/trunk/modules/oauth/mod-oauth2.cpp

Modified: tuscany/sca-cpp/trunk/modules/http/open-auth-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/open-auth-conf?rev=1083692&r1=1083691&r2=1083692&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/open-auth-conf (original)
+++ tuscany/sca-cpp/trunk/modules/http/open-auth-conf Mon Mar 21 07:41:48 2011
@@ -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

Modified: tuscany/sca-cpp/trunk/modules/http/openauth.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/openauth.hpp?rev=1083692&r1=1083691&r2=1083692&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/openauth.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/http/openauth.hpp Mon Mar 21 07:41:48 2011
@@ -73,11 +73,11 @@ const maybe<string> sessionID(const requ
 /**
  * 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;
 }

Modified: tuscany/sca-cpp/trunk/modules/oauth/mod-oauth1.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/oauth/mod-oauth1.cpp?rev=1083692&r1=1083691&r2=1083692&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/oauth/mod-oauth1.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/oauth/mod-oauth1.cpp Mon Mar 21 07:41:48 2011
@@ -378,7 +378,7 @@ const failable<int> access_token(const l
         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);
 }
 

Modified: tuscany/sca-cpp/trunk/modules/oauth/mod-oauth2.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/oauth/mod-oauth2.cpp?rev=1083692&r1=1083691&r2=1083692&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/oauth/mod-oauth2.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/oauth/mod-oauth2.cpp Mon Mar 21 07:41:48 2011
@@ -230,7 +230,7 @@ const failable<int> access_token(const l
         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);
 }