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: [email protected]
For additional commands, e-mail: [email protected]