Author: markt
Date: Fri Dec 19 13:54:47 2014
New Revision: 1646720

URL: http://svn.apache.org/r1646720
Log:
Calls to associate need to trigger a Map update as well

Modified:
    tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java
    
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java

Modified: tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java?rev=1646720&r1=1646719&r2=1646720&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java Fri 
Dec 19 13:54:47 2014
@@ -354,18 +354,24 @@ public class SingleSignOn extends ValveB
      *
      * @param ssoId Single sign on identifier
      * @param session Session to be associated
+     *
+     * @return <code>true</code> if the session was associated to the given SSO
+     *         session, otherwise <code>false</code>
      */
-    protected void associate(String ssoId, Session session) {
+    protected boolean associate(String ssoId, Session session) {
 
         if (containerLog.isDebugEnabled()) {
             containerLog.debug("Associate sso id " + ssoId + " with session " 
+ session);
         }
 
         SingleSignOnEntry sso = cache.get(ssoId);
-        if (sso != null) {
+        if (sso == null) {
+            return false;
+        } else {
             sso.addSession(this, session);
+            reverse.put(new SingleSignOnSessionKey(session), ssoId);
+            return true;
         }
-        reverse.put(new SingleSignOnSessionKey(session), ssoId);
     }
 
 

Modified: 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java?rev=1646720&r1=1646719&r2=1646720&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java 
Fri Dec 19 13:54:47 2014
@@ -21,6 +21,7 @@ import java.security.Principal;
 import org.apache.catalina.Container;
 import org.apache.catalina.Host;
 import org.apache.catalina.LifecycleException;
+import org.apache.catalina.Session;
 import org.apache.catalina.authenticator.SingleSignOn;
 import org.apache.catalina.authenticator.SingleSignOnEntry;
 import org.apache.catalina.authenticator.SingleSignOnSessionKey;
@@ -95,6 +96,15 @@ public class ClusterSingleSignOn extends
     // ---------------------------------------------------- SingleSignOn 
Methods
 
     @Override
+    protected boolean associate(String ssoId, Session session) {
+        boolean result = super.associate(ssoId, session);
+        if (result) {
+            ((ReplicatedMap<String,SingleSignOnEntry>) cache).replicate(ssoId, 
true);
+        }
+        return result;
+    }
+
+    @Override
     protected boolean update(String ssoId, Principal principal, String 
authType,
             String username, String password) {
         boolean result = super.update(ssoId, principal, authType, username, 
password);



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

Reply via email to