Author: markt Date: Tue Dec 16 21:54:25 2014 New Revision: 1646105 URL: http://svn.apache.org/r1646105 Log: Make Serializable
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOnEntry.java Modified: tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOnEntry.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOnEntry.java?rev=1646105&r1=1646104&r2=1646105&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOnEntry.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/SingleSignOnEntry.java Tue Dec 16 21:54:25 2014 @@ -16,6 +16,8 @@ */ package org.apache.catalina.authenticator; +import java.io.IOException; +import java.io.Serializable; import java.security.Principal; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -35,14 +37,18 @@ import org.apache.catalina.Session; * @see SingleSignOn * @see AuthenticatorBase#reauthenticateFromSSO */ -public class SingleSignOnEntry { +public class SingleSignOnEntry implements Serializable { + + private static final long serialVersionUID = 1L; + // ------------------------------------------------------ Instance Fields protected String authType = null; protected String password = null; - protected Principal principal = null; + // Marked as transient so special handling can be applied to serialization + protected transient Principal principal = null; protected ConcurrentHashMap<SingleSignOnSessionKey,SingleSignOnSessionKey> sessionKeys = new ConcurrentHashMap<>(); @@ -176,4 +182,24 @@ public class SingleSignOnEntry { this.canReauthenticate = (HttpServletRequest.BASIC_AUTH.equals(authType) || HttpServletRequest.FORM_AUTH.equals(authType)); } + + + private void writeObject(java.io.ObjectOutputStream out) throws IOException { + out.defaultWriteObject(); + if (principal instanceof Serializable) { + out.writeBoolean(true); + out.writeObject(principal); + } else { + out.writeBoolean(false); + } + } + + private void readObject(java.io.ObjectInputStream in) throws IOException, + ClassNotFoundException { + in.defaultReadObject(); + boolean hasPrincipal = in.readBoolean(); + if (hasPrincipal) { + principal = (Principal) in.readObject(); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org