You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/09/08 11:12:14 UTC

svn commit: r1807713 - in /tomcat/trunk: java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java test/org/apache/tomcat/util/net/TestSSLHostConfig.java

Author: markt
Date: Fri Sep  8 11:12:13 2017
New Revision: 1807713

URL: http://svn.apache.org/viewvc?rev=1807713&view=rev
Log:
Make SSLHostConfig Serializable again
Spotted by FindBugs but add a test case to ensure the expected behaviour.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
    tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java
    tomcat/trunk/test/org/apache/tomcat/util/net/TestSSLHostConfig.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java?rev=1807713&r1=1807712&r2=1807713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java Fri Sep  8 11:12:13 2017
@@ -16,6 +16,7 @@
  */
 package org.apache.tomcat.util.net.openssl;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -24,7 +25,9 @@ import org.apache.juli.logging.LogFactor
 import org.apache.tomcat.jni.SSLConf;
 import org.apache.tomcat.util.res.StringManager;
 
-public class OpenSSLConf {
+public class OpenSSLConf implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
     private static final Log log = LogFactory.getLog(OpenSSLConf.class);
     private static final StringManager sm = StringManager.getManager(OpenSSLConf.class);

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java?rev=1807713&r1=1807712&r2=1807713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLConfCmd.java Fri Sep  8 11:12:13 2017
@@ -16,7 +16,11 @@
  */
 package org.apache.tomcat.util.net.openssl;
 
-public class OpenSSLConfCmd {
+import java.io.Serializable;
+
+public class OpenSSLConfCmd implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
     private String name = null;
     private String value = null;

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestSSLHostConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestSSLHostConfig.java?rev=1807713&r1=1807712&r2=1807713&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestSSLHostConfig.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestSSLHostConfig.java Fri Sep  8 11:12:13 2017
@@ -16,9 +16,18 @@
  */
 package org.apache.tomcat.util.net;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.List;
+
 import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.tomcat.util.net.openssl.OpenSSLConf;
+import org.apache.tomcat.util.net.openssl.OpenSSLConfCmd;
 import org.apache.tomcat.util.net.openssl.ciphers.Cipher;
 
 public class TestSSLHostConfig {
@@ -65,4 +74,39 @@ public class TestSSLHostConfig {
         hc.setCiphers(c.getOpenSSLAlias());
         Assert.assertEquals(c.getOpenSSLAlias(), hc.getCiphers());
     }
+
+
+    @Test
+    public void testSerialization() throws IOException, ClassNotFoundException {
+        // Dummy OpenSSL command name/value pair
+        String name = "foo";
+        String value = "bar";
+
+        // Set up the object
+        SSLHostConfig sslHostConfig = new SSLHostConfig();
+        OpenSSLConf openSSLConf = new OpenSSLConf();
+        OpenSSLConfCmd openSSLConfCmd = new OpenSSLConfCmd();
+        openSSLConfCmd.setName(name);
+        openSSLConfCmd.setValue(value);
+        openSSLConf.addCmd(openSSLConfCmd);
+        sslHostConfig.setOpenSslConf(openSSLConf);
+
+        // Serialize
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        ObjectOutputStream oos = new ObjectOutputStream(baos);
+        oos.writeObject(sslHostConfig);
+        oos.close();
+
+        // Deserialize
+        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+        ObjectInputStream ois = new ObjectInputStream(bais);
+        SSLHostConfig output = (SSLHostConfig) ois.readObject();
+
+        // Check values
+        List<OpenSSLConfCmd> commands = output.getOpenSslConf().getCommands();
+        Assert.assertEquals(1, commands.size());
+        OpenSSLConfCmd command = commands.get(0);
+        Assert.assertEquals(name, command.getName());
+        Assert.assertEquals(value, command.getValue());
+    }
 }



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