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