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