You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pe...@apache.org on 2007/01/18 18:12:00 UTC

svn commit: r497501 - in /tomcat/container/tc5.5.x: catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java

Author: pero
Date: Thu Jan 18 09:11:59 2007
New Revision: 497501

URL: http://svn.apache.org/viewvc?view=rev&rev=497501
Log:
Don't send a SSO ADD_SESSION event to cluster nodes after every auth request.

Modified:
    tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java
    tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java

Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java?view=diff&rev=497501&r1=497500&r2=497501
==============================================================================
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/authenticator/SingleSignOnEntry.java Thu Jan 18 09:11:59 2007
@@ -116,6 +116,21 @@
     }
 
     /**
+     * Is <code>Session</code> associated with this SSO?
+     *
+     * @param sso       The <code>SingleSignOn</code> valve that is managing
+     *                  the SSO session.
+     * @return session exists
+     */
+    public synchronized boolean sessionExists(Session session) {
+        for (int i = 0; i < sessions.length; i++) {
+            if (session == sessions[i])
+                return true;
+        }
+        return false ;
+    }
+
+    /**
      * Gets the name of the authentication type originally used to authenticate
      * the user associated with the SSO.
      *

Modified: tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java?view=diff&rev=497501&r1=497500&r2=497501
==============================================================================
--- tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java (original)
+++ tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java Thu Jan 18 09:11:59 2007
@@ -29,6 +29,7 @@
 import org.apache.catalina.Manager;
 import org.apache.catalina.Session;
 import org.apache.catalina.authenticator.SingleSignOn;
+import org.apache.catalina.authenticator.SingleSignOnEntry;
 import org.apache.catalina.cluster.CatalinaCluster;
 import org.apache.catalina.cluster.ClusterManager;
 import org.apache.catalina.cluster.ClusterValve;
@@ -52,7 +53,7 @@
  *
  * @author Fabien Carrion
  * @author Peter Rossbach
- * @version $Revision:$ $Date:$
+ * @version $Revision$ $Date$
  */
 
 public class ClusterSingleSignOn
@@ -180,9 +181,15 @@
      * @param session Session to be associated
      */
     protected void associate(String ssoId, Session session) {
-        sendSSOId(ssoId,session,SingleSignOnMessage.ADD_SESSION) ;
-        associateLocal(ssoId, session);
-
+        boolean addSession = true ;
+        SingleSignOnEntry entry = lookup(ssoId);
+        if (entry != null) {
+            addSession = !entry.sessionExists(session);
+        }
+        if(addSession) {
+            sendSSOId(ssoId,session,SingleSignOnMessage.ADD_SESSION) ;
+            associateLocal(ssoId, session);
+        }
     }
 
     protected void associateLocal(String ssoId, Session session) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org