Author: kfujino
Date: Thu Mar  8 08:39:02 2012
New Revision: 1298296

URL: http://svn.apache.org/viewvc?rev=1298296&view=rev
Log:
Replicate Principal in ClusterSingleSignOn.

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

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=1298296&r1=1298295&r2=1298296&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java 
Thu Mar  8 08:39:02 2012
@@ -31,6 +31,8 @@ import org.apache.catalina.Session;
 import org.apache.catalina.authenticator.SingleSignOn;
 import org.apache.catalina.ha.CatalinaCluster;
 import org.apache.catalina.ha.ClusterManager;
+import org.apache.catalina.ha.session.SerializablePrincipal;
+import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.tomcat.util.ExceptionUtils;
 
 
@@ -293,6 +295,12 @@ public class ClusterSingleSignOn extends
             msg.setUsername(username);
             msg.setPassword(password);
 
+            SerializablePrincipal sp = null;
+            if (principal instanceof GenericPrincipal) {
+                sp = SerializablePrincipal.createPrincipal((GenericPrincipal) 
principal);
+                msg.setPrincipal(sp);
+            }
+
             cluster.send(msg);
             if (containerLog.isDebugEnabled()) {
                 containerLog.debug("SingleSignOnMessage Send with action "
@@ -352,6 +360,12 @@ public class ClusterSingleSignOn extends
             msg.setUsername(username);
             msg.setPassword(password);
 
+            SerializablePrincipal sp = null;
+            if (principal instanceof GenericPrincipal) {
+                sp = SerializablePrincipal.createPrincipal((GenericPrincipal) 
principal);
+                msg.setPrincipal(sp);
+            }
+
             cluster.send(msg);
             if (containerLog.isDebugEnabled()) {
                 containerLog.debug("SingleSignOnMessage Send with action "

Modified: 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOnListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOnListener.java?rev=1298296&r1=1298295&r2=1298296&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOnListener.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/ClusterSingleSignOnListener.java
 Thu Mar  8 08:39:02 2012
@@ -18,6 +18,7 @@
 package org.apache.catalina.ha.authenticator;
 
 import java.io.IOException;
+import java.security.Principal;
 import java.util.Map;
 
 import org.apache.catalina.Session;
@@ -76,6 +77,7 @@ public class ClusterSingleSignOnListener
             SingleSignOnMessage msg = (SingleSignOnMessage) myobj;
             int action = msg.getAction();
             Session session = null;
+            Principal principal = null;
 
             if (log.isDebugEnabled())
                 log.debug("SingleSignOnMessage Received with action "
@@ -98,11 +100,17 @@ public class ClusterSingleSignOnListener
                 clusterSSO.deregisterLocal(msg.getSsoId());
                 break;
             case SingleSignOnMessage.REGISTER_SESSION:
-                clusterSSO.registerLocal(msg.getSsoId(), null, 
msg.getAuthType(),
+                if (msg.getPrincipal() != null) {
+                    principal = msg.getPrincipal().getPrincipal();
+                }
+                clusterSSO.registerLocal(msg.getSsoId(), principal, 
msg.getAuthType(),
                                          msg.getUsername(), msg.getPassword());
                 break;
             case SingleSignOnMessage.UPDATE_SESSION:
-                clusterSSO.updateLocal(msg.getSsoId(), null, msg.getAuthType(),
+                if (msg.getPrincipal() != null) {
+                    principal = msg.getPrincipal().getPrincipal();
+                }
+                clusterSSO.updateLocal(msg.getSsoId(), principal, 
msg.getAuthType(),
                                        msg.getUsername(), msg.getPassword());
                 break;
             case SingleSignOnMessage.REMOVE_SESSION:

Modified: 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/SingleSignOnMessage.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/authenticator/SingleSignOnMessage.java?rev=1298296&r1=1298295&r2=1298296&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/SingleSignOnMessage.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/ha/authenticator/SingleSignOnMessage.java 
Thu Mar  8 08:39:02 2012
@@ -18,6 +18,7 @@
 package org.apache.catalina.ha.authenticator;
 
 import org.apache.catalina.ha.ClusterMessage;
+import org.apache.catalina.ha.session.SerializablePrincipal;
 import org.apache.catalina.tribes.Member;
 
 /**
@@ -43,6 +44,7 @@ public class SingleSignOnMessage impleme
     private String authType = null;
     private String password = null;
     private String username = null;
+    private SerializablePrincipal principal = null;
 
     private Member address = null;
     private long timestamp = 0;
@@ -175,6 +177,13 @@ public class SingleSignOnMessage impleme
         this.username = username;
     }
 
+    public SerializablePrincipal getPrincipal() {
+        return principal;
+    }
+
+    public void setPrincipal(SerializablePrincipal principal) {
+        this.principal = principal;
+    }
 
     // --------------------------------------------------------- Public Methods
 



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

Reply via email to