Author: rjung
Date: Tue May 26 14:59:04 2015
New Revision: 1681770

URL: http://svn.apache.org/r1681770
Log:
Use constants for SSL/TLS protocol names
to reduce chances of fatal consequences of
string typos.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/Constants.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java
    
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java
    tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Protocol.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1681770&r1=1681769&r2=1681770&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Tue May 26 
14:59:04 2015
@@ -378,19 +378,19 @@ public class AprEndpoint extends Abstrac
                     value = SSL.SSL_PROTOCOL_ALL;
                 } else {
                     for (String protocol : sslHostConfig.getProtocols()) {
-                        if ("SSLv2Hello".equalsIgnoreCase(protocol)) {
+                        if 
(Constants.SSL_PROTO_SSLv2Hello.equalsIgnoreCase(protocol)) {
                             // NO-OP. OpenSSL always supports SSLv2Hello
-                        } else if ("SSLv2".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_SSLv2.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_SSLV2;
-                        } else if ("SSLv3".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_SSLv3.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_SSLV3;
-                        } else if ("TLSv1".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_TLSv1.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_TLSV1;
-                        } else if ("TLSv1.1".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_TLSv1_1.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_TLSV1_1;
-                        } else if ("TLSv1.2".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_TLSv1_2.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_TLSV1_2;
-                        } else if ("all".equalsIgnoreCase(protocol)) {
+                        } else if 
(Constants.SSL_PROTO_ALL.equalsIgnoreCase(protocol)) {
                             value |= SSL.SSL_PROTOCOL_ALL;
                         } else {
                             // Protocol not recognized, fail to start as it is 
safer than

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Constants.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Constants.java?rev=1681770&r1=1681769&r2=1681770&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Constants.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Constants.java Tue May 26 
14:59:04 2015
@@ -23,4 +23,16 @@ public class Constants {
      * the tomcat instance installation path
      */
     public static final String CATALINA_BASE_PROP = "catalina.base";
+
+    /**
+     * JSSE and OpenSSL protocol names
+     */
+    public static final String SSL_PROTO_ALL        = "all";
+    public static final String SSL_PROTO_TLS        = "TLS";
+    public static final String SSL_PROTO_TLSv1_2    = "TLSv1.2";
+    public static final String SSL_PROTO_TLSv1_1    = "TLSv1.1";
+    public static final String SSL_PROTO_TLSv1      = "TLSv1";
+    public static final String SSL_PROTO_SSLv3      = "SSLv3";
+    public static final String SSL_PROTO_SSLv2      = "SSLv2";
+    public static final String SSL_PROTO_SSLv2Hello = "SSLv2Hello";
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java?rev=1681770&r1=1681769&r2=1681770&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java Tue May 26 
14:59:04 2015
@@ -66,7 +66,7 @@ public class SSLHostConfig {
     private String keyManagerAlgorithm = 
KeyManagerFactory.getDefaultAlgorithm();
     private int sessionCacheSize = 0;
     private int sessionTimeout = 86400;
-    private String sslProtocol = "TLS";
+    private String sslProtocol = Constants.SSL_PROTO_TLS;
     private String trustManagerClassName;
     private String truststoreAlgorithm = 
TrustManagerFactory.getDefaultAlgorithm();
     private String truststoreFile = 
System.getProperty("javax.net.ssl.trustStore");
@@ -86,7 +86,7 @@ public class SSLHostConfig {
 
     public SSLHostConfig() {
         // Set defaults that can't be (easily) set when defining the fields.
-        setProtocols("all");
+        setProtocols(Constants.SSL_PROTO_ALL);
         // Configure fall-back defaults if system property is not set.
         if (certificateKeystoreType == null) {
             certificateKeystoreType = "JKS";
@@ -238,11 +238,11 @@ public class SSLHostConfig {
         for (String value: values) {
             String trimmed = value.trim();
             if (trimmed.length() > 0) {
-                if (input.trim().equalsIgnoreCase("all")) {
-                    protocols.add("SSLv2Hello");
-                    protocols.add("TLSv1");
-                    protocols.add("TLSv1.1");
-                    protocols.add("TLSv1.2");
+                if (input.trim().equalsIgnoreCase(Constants.SSL_PROTO_ALL)) {
+                    protocols.add(Constants.SSL_PROTO_SSLv2Hello);
+                    protocols.add(Constants.SSL_PROTO_TLSv1);
+                    protocols.add(Constants.SSL_PROTO_TLSv1_1);
+                    protocols.add(Constants.SSL_PROTO_TLSv1_2);
                 } else {
                     protocols.add(trimmed);
                 }

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java?rev=1681770&r1=1681769&r2=1681770&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java
 (original)
+++ 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/OpenSSLCipherConfigurationParser.java
 Tue May 26 14:59:04 2015
@@ -31,6 +31,7 @@ import java.util.Set;
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.net.Constants;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
@@ -227,22 +228,6 @@ public class OpenSSLCipherConfigurationP
      */
     private static final String FZA = "FZA";
     /**
-     * TLS v1.2 cipher suites. Note: there are no cipher suites specific to 
TLS v1.1.
-     */
-    private static final String TLSv1_2 = "TLSv1.2";
-    /**
-     * TLS v1.0 cipher suites.
-     */
-    private static final String TLSv1 = "TLSv1";
-    /**
-     * SSL v2.0 cipher suites.
-     */
-    private static final String SSLv2 = "SSLv2";
-    /**
-     * SSL v3.0 cipher suites.
-     */
-    private static final String SSLv3 = "SSLv3";
-    /**
      * Cipher suites using DH, including anonymous DH, ephemeral DH and fixed 
DH.
      */
     private static final String DH = "DH";
@@ -449,11 +434,11 @@ public class OpenSSLCipherConfigurationP
         addListAlias(aFZA, filterByAuthentication(allCiphers, 
Collections.singleton(Authentication.FZA)));
         addListAlias(eFZA, filterByEncryption(allCiphers, 
Collections.singleton(Encryption.FZA)));
         addListAlias(FZA, filter(allCiphers, null, 
Collections.singleton(KeyExchange.FZA), 
Collections.singleton(Authentication.FZA), 
Collections.singleton(Encryption.FZA), null, null));
-        addListAlias(TLSv1_2, filterByProtocol(allCiphers, 
Collections.singleton(Protocol.TLSv1_2)));
-        addListAlias("TLSv1.1", filterByProtocol(allCiphers, 
Collections.singleton(Protocol.SSLv3)));
-        addListAlias(TLSv1, filterByProtocol(allCiphers, new 
HashSet<>(Arrays.asList(Protocol.TLSv1, Protocol.SSLv3))));
-        aliases.put(SSLv3, aliases.get(TLSv1));
-        addListAlias(SSLv2, filterByProtocol(allCiphers, 
Collections.singleton(Protocol.SSLv2)));
+        addListAlias(Constants.SSL_PROTO_TLSv1_2, filterByProtocol(allCiphers, 
Collections.singleton(Protocol.TLSv1_2)));
+        addListAlias(Constants.SSL_PROTO_TLSv1_1, filterByProtocol(allCiphers, 
Collections.singleton(Protocol.SSLv3)));
+        addListAlias(Constants.SSL_PROTO_TLSv1, filterByProtocol(allCiphers, 
new HashSet<>(Arrays.asList(Protocol.TLSv1, Protocol.SSLv3))));
+        aliases.put(Constants.SSL_PROTO_SSLv3, 
aliases.get(Constants.SSL_PROTO_TLSv1));
+        addListAlias(Constants.SSL_PROTO_SSLv2, filterByProtocol(allCiphers, 
Collections.singleton(Protocol.SSLv2)));
         addListAlias(DH, filterByKeyExchange(allCiphers, new 
HashSet<>(Arrays.asList(KeyExchange.DHr, KeyExchange.DHd, KeyExchange.EDH))));
         Set<Cipher> adh = filterByKeyExchange(allCiphers, 
Collections.singleton(KeyExchange.EDH));
         adh.retainAll(filterByAuthentication(allCiphers, 
Collections.singleton(Authentication.aNULL)));

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Protocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Protocol.java?rev=1681770&r1=1681769&r2=1681770&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Protocol.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/openssl/Protocol.java Tue 
May 26 14:59:04 2015
@@ -17,12 +17,14 @@
 
 package org.apache.tomcat.util.net.jsse.openssl;
 
+import org.apache.tomcat.util.net.Constants;
+
 enum Protocol {
 
-    SSLv3("SSLv3"),
-    SSLv2("SSLv2"),
-    TLSv1("SSLv3"),
-    TLSv1_2("TLSv1.2");
+    SSLv3(Constants.SSL_PROTO_SSLv3),
+    SSLv2(Constants.SSL_PROTO_SSLv2),
+    TLSv1(Constants.SSL_PROTO_SSLv3),
+    TLSv1_2(Constants.SSL_PROTO_TLSv1_2);
 
     private final String openSSLName;
 



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

Reply via email to