|
|
4cd948 |
Index: .classpath
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- .classpath (revision 0)
|
|
|
4cd948 |
+++ .classpath (revision 294)
|
|
|
4cd948 |
@@ -0,0 +1,10 @@
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+<classpath>
|
|
|
4cd948 |
+ <classpathentry kind="src" path="src"/>
|
|
|
4cd948 |
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
|
|
4cd948 |
+ <classpathentry kind="lib" path="/usr/share/java/apache-commons-lang.jar"/>
|
|
|
4cd948 |
+ <classpathentry kind="lib" path="/usr/share/java/apache-commons-logging.jar"/>
|
|
|
4cd948 |
+ <classpathentry kind="lib" path="/usr/lib/java/jss4.jar"/>
|
|
|
4cd948 |
+ <classpathentry kind="lib" path="/usr/share/java/tomcat/tomcat-coyote.jar"/>
|
|
|
4cd948 |
+ <classpathentry kind="output" path="bin"/>
|
|
|
4cd948 |
+</classpath>
|
|
|
4cd948 |
|
|
|
4cd948 |
Property changes on: .classpath
|
|
|
4cd948 |
___________________________________________________________________
|
|
|
4cd948 |
Added: svn:mime-type
|
|
|
4cd948 |
## -0,0 +1 ##
|
|
|
4cd948 |
+text/plain
|
|
|
4cd948 |
\ No newline at end of property
|
|
|
4cd948 |
Index: .project
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- .project (revision 0)
|
|
|
4cd948 |
+++ .project (revision 294)
|
|
|
4cd948 |
@@ -0,0 +1,17 @@
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+<projectDescription>
|
|
|
4cd948 |
+ <name>tomcatjss</name>
|
|
|
4cd948 |
+ <comment></comment>
|
|
|
4cd948 |
+ <projects>
|
|
|
4cd948 |
+ </projects>
|
|
|
4cd948 |
+ <buildSpec>
|
|
|
4cd948 |
+ <buildCommand>
|
|
|
4cd948 |
+ <name>org.eclipse.jdt.core.javabuilder</name>
|
|
|
4cd948 |
+ <arguments>
|
|
|
4cd948 |
+ </arguments>
|
|
|
4cd948 |
+ </buildCommand>
|
|
|
4cd948 |
+ </buildSpec>
|
|
|
4cd948 |
+ <natures>
|
|
|
4cd948 |
+ <nature>org.eclipse.jdt.core.javanature</nature>
|
|
|
4cd948 |
+ </natures>
|
|
|
4cd948 |
+</projectDescription>
|
|
|
4cd948 |
|
|
|
4cd948 |
Property changes on: .project
|
|
|
4cd948 |
___________________________________________________________________
|
|
|
4cd948 |
Added: svn:mime-type
|
|
|
4cd948 |
## -0,0 +1 ##
|
|
|
4cd948 |
+text/plain
|
|
|
4cd948 |
\ No newline at end of property
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/IJSSFactory.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/IJSSFactory.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/IJSSFactory.java (revision 294)
|
|
|
4cd948 |
@@ -19,11 +19,14 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
-import org.mozilla.jss.ssl.*;
|
|
|
4cd948 |
-import org.apache.tomcat.util.net.*;
|
|
|
4cd948 |
-import java.net.*;
|
|
|
4cd948 |
+import java.net.Socket;
|
|
|
4cd948 |
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.AbstractEndpoint;
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.SSLSupport;
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.ServerSocketFactory;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
interface IJSSFactory {
|
|
|
4cd948 |
public ServerSocketFactory getSocketFactory(AbstractEndpoint endpoint);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
public SSLSupport getSSLSupport(Socket socket);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/JSSSocketFactory.java (revision 294)
|
|
|
4cd948 |
@@ -19,364 +19,489 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
-import java.util.*;
|
|
|
4cd948 |
+import java.io.BufferedReader;
|
|
|
4cd948 |
+import java.io.File;
|
|
|
4cd948 |
+import java.io.FileInputStream;
|
|
|
4cd948 |
+import java.io.FileWriter;
|
|
|
4cd948 |
+import java.io.IOException;
|
|
|
4cd948 |
+import java.io.InputStreamReader;
|
|
|
4cd948 |
+import java.net.InetAddress;
|
|
|
4cd948 |
+import java.net.ServerSocket;
|
|
|
4cd948 |
+import java.net.Socket;
|
|
|
4cd948 |
+import java.net.SocketException;
|
|
|
4cd948 |
import java.text.SimpleDateFormat;
|
|
|
4cd948 |
-import java.lang.Thread;
|
|
|
4cd948 |
-import java.lang.NumberFormatException;
|
|
|
4cd948 |
-import org.mozilla.jss.ssl.*;
|
|
|
4cd948 |
-import org.mozilla.jss.crypto.*;
|
|
|
4cd948 |
-import org.mozilla.jss.CryptoManager;
|
|
|
4cd948 |
-import org.mozilla.jss.util.*;
|
|
|
4cd948 |
-import org.mozilla.jss.pkcs11.*;
|
|
|
4cd948 |
-import java.net.*;
|
|
|
4cd948 |
-import java.io.*;
|
|
|
4cd948 |
+import java.util.Date;
|
|
|
4cd948 |
+import java.util.Enumeration;
|
|
|
4cd948 |
+import java.util.HashMap;
|
|
|
4cd948 |
+import java.util.StringTokenizer;
|
|
|
4cd948 |
|
|
|
4cd948 |
-// Imports required to "implement" Tomcat 7 Interface
|
|
|
4cd948 |
-import org.apache.tomcat.util.net.AbstractEndpoint;
|
|
|
4cd948 |
import javax.net.ssl.KeyManager;
|
|
|
4cd948 |
import javax.net.ssl.SSLContext;
|
|
|
4cd948 |
import javax.net.ssl.TrustManager;
|
|
|
4cd948 |
|
|
|
4cd948 |
-public class JSSSocketFactory
|
|
|
4cd948 |
- implements org.apache.tomcat.util.net.ServerSocketFactory,
|
|
|
4cd948 |
- org.apache.tomcat.util.net.SSLUtil {
|
|
|
4cd948 |
+// Imports required to "implement" Tomcat 7 Interface
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.AbstractEndpoint;
|
|
|
4cd948 |
+import org.mozilla.jss.CryptoManager;
|
|
|
4cd948 |
+import org.mozilla.jss.crypto.AlreadyInitializedException;
|
|
|
4cd948 |
+import org.mozilla.jss.crypto.CryptoToken;
|
|
|
4cd948 |
+import org.mozilla.jss.ssl.SSLServerSocket;
|
|
|
4cd948 |
+import org.mozilla.jss.ssl.SSLSocket;
|
|
|
4cd948 |
+import org.mozilla.jss.util.Password;
|
|
|
4cd948 |
|
|
|
4cd948 |
- private static HashMap cipherMap = new HashMap();
|
|
|
4cd948 |
+public class JSSSocketFactory implements
|
|
|
4cd948 |
+ org.apache.tomcat.util.net.ServerSocketFactory,
|
|
|
4cd948 |
+ org.apache.tomcat.util.net.SSLUtil {
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ private static HashMap<String, Integer> cipherMap = new HashMap<String, Integer>();
|
|
|
4cd948 |
static {
|
|
|
4cd948 |
// SSLv2
|
|
|
4cd948 |
- cipherMap.put("SSL2_RC4_128_WITH_MD5", SSLSocket.SSL2_RC4_128_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_RC4_128_EXPORT40_WITH_MD5", SSLSocket.SSL2_RC4_128_EXPORT40_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_RC2_128_CBC_WITH_MD5", SSLSocket.SSL2_RC2_128_CBC_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_RC2_128_CBC_EXPORT40_WITH_MD5", SSLSocket.SSL2_RC2_128_CBC_EXPORT40_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_IDEA_128_CBC_WITH_MD5", SSLSocket.SSL2_IDEA_128_CBC_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_DES_64_CBC_WITH_MD5", SSLSocket.SSL2_DES_64_CBC_WITH_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL2_DES_192_EDE3_CBC_WITH_MD5", SSLSocket.SSL2_DES_192_EDE3_CBC_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_RC4_128_WITH_MD5", SSLSocket.SSL2_RC4_128_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_RC4_128_EXPORT40_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_RC4_128_EXPORT40_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_RC2_128_CBC_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_RC2_128_CBC_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_RC2_128_CBC_EXPORT40_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_RC2_128_CBC_EXPORT40_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_IDEA_128_CBC_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_IDEA_128_CBC_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_DES_64_CBC_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_DES_64_CBC_WITH_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL2_DES_192_EDE3_CBC_WITH_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL2_DES_192_EDE3_CBC_WITH_MD5);
|
|
|
4cd948 |
|
|
|
4cd948 |
// SSLv3
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_NULL_MD5", SSLSocket.SSL3_RSA_WITH_NULL_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_NULL_SHA", SSLSocket.SSL3_RSA_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_EXPORT_WITH_RC4_40_MD5", SSLSocket.SSL3_RSA_EXPORT_WITH_RC4_40_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_RC4_128_MD5", SSLSocket.SSL3_RSA_WITH_RC4_128_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_RC4_128_SHA", SSLSocket.SSL3_RSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_EXPORT_WITH_RC2_CBC_40_MD5", SSLSocket.SSL3_RSA_EXPORT_WITH_RC2_CBC_40_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_IDEA_CBC_SHA", SSLSocket.SSL3_RSA_WITH_IDEA_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_DES_CBC_SHA", SSLSocket.SSL3_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_RSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_DH_DSS_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_DSS_WITH_DES_CBC_SHA", SSLSocket.SSL3_DH_DSS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_DSS_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_DH_DSS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_DH_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_RSA_WITH_DES_CBC_SHA", SSLSocket.SSL3_DH_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_RSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_DH_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_DSS_WITH_DES_CBC_SHA", SSLSocket.SSL3_DHE_DSS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_DSS_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_DHE_DSS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_RSA_WITH_DES_CBC_SHA", SSLSocket.SSL3_DHE_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DHE_RSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_DHE_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_ANON_EXPORT_WITH_RC4_40_MD5", SSLSocket.SSL3_DH_ANON_EXPORT_WITH_RC4_40_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_ANON_WITH_RC4_128_MD5", SSLSocket.SSL3_DH_ANON_WITH_RC4_128_MD5);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_ANON_EXPORT_WITH_DES40_CBC_SHA", SSLSocket.SSL3_DH_ANON_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_ANON_WITH_DES_CBC_SHA", SSLSocket.SSL3_DH_ANON_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_DH_ANON_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL3_DH_ANON_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("SSL3_FORTEZZA_DMS_WITH_NULL_SHA", SSLSocket.SSL3_FORTEZZA_DMS_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA", SSLSocket.SSL3_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL3_FORTEZZA_DMS_WITH_RC4_128_SHA", SSLSocket.SSL3_FORTEZZA_DMS_WITH_RC4_128_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA", SSLSocket.SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("SSL_RSA_FIPS_WITH_DES_CBC_SHA", SSLSocket.SSL_RSA_FIPS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_NULL_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_NULL_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_EXPORT_WITH_RC4_40_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_EXPORT_WITH_RC4_40_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_RC4_128_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_RC4_128_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_EXPORT_WITH_RC2_CBC_40_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_EXPORT_WITH_RC2_CBC_40_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_IDEA_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_IDEA_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_DSS_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_DSS_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_DSS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_DSS_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_DSS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_RSA_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_DSS_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_DSS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_DSS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_RSA_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_RSA_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DHE_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_ANON_EXPORT_WITH_RC4_40_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_ANON_EXPORT_WITH_RC4_40_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_ANON_WITH_RC4_128_MD5",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_ANON_WITH_RC4_128_MD5);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_ANON_EXPORT_WITH_DES40_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_ANON_EXPORT_WITH_DES40_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_ANON_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_ANON_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_DH_ANON_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_DH_ANON_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("SSL3_FORTEZZA_DMS_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_FORTEZZA_DMS_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL3_FORTEZZA_DMS_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL3_FORTEZZA_DMS_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("SSL_RSA_FIPS_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.SSL_RSA_FIPS_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
// TLS
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA", SSLSocket.TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_EXPORT1024_WITH_RC4_56_SHA", SSLSocket.TLS_RSA_EXPORT1024_WITH_RC4_56_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA", SSLSocket.TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA", SSLSocket.TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_WITH_RC4_128_SHA", SSLSocket.TLS_DHE_DSS_WITH_RC4_128_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_DSS_WITH_AES_128_CBC_SHA", SSLSocket.TLS_DH_DSS_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_RSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_DH_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_WITH_AES_128_CBC_SHA", SSLSocket.TLS_DHE_DSS_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_RSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_DHE_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_ANON_WITH_AES_128_CBC_SHA", SSLSocket.TLS_DH_ANON_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_DSS_WITH_AES_256_CBC_SHA", SSLSocket.TLS_DH_DSS_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_RSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_DH_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_WITH_AES_256_CBC_SHA", SSLSocket.TLS_DHE_DSS_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_RSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_DHE_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_DH_ANON_WITH_AES_256_CBC_SHA", SSLSocket.TLS_DH_ANON_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_EXPORT1024_WITH_RC4_56_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_EXPORT1024_WITH_RC4_56_SHA);
|
|
|
4cd948 |
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_DSS_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_DSS_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_RSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_ANON_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_ANON_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_DSS_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_DSS_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_RSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DH_ANON_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_DH_ANON_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
// ECC
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_NULL_SHA", SSLSocket.TLS_ECDH_ECDSA_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_RC4_128_SHA", SSLSocket.TLS_ECDH_ECDSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_NULL_SHA", SSLSocket.TLS_ECDHE_ECDSA_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", SSLSocket.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_NULL_SHA", SSLSocket.TLS_ECDHE_RSA_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_RC4_128_SHA", SSLSocket.TLS_ECDHE_RSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", SSLSocket.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", SSLSocket.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_anon_WITH_NULL_SHA", SSLSocket.TLS_ECDH_anon_WITH_NULL_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_anon_WITH_RC4_128_SHA", SSLSocket.TLS_ECDH_anon_WITH_RC4_128_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", SSLSocket.TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_anon_WITH_AES_128_CBC_SHA", SSLSocket.TLS_ECDH_anon_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_anon_WITH_AES_256_CBC_SHA", SSLSocket.TLS_ECDH_anon_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
|
|
|
4cd948 |
- //TLSv1_2
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", SSLSocket.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", SSLSocket.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_NULL_SHA256", SSLSocket.TLS_RSA_WITH_NULL_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_AES_128_CBC_SHA256", SSLSocket.TLS_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_AES_256_CBC_SHA256", SSLSocket.TLS_RSA_WITH_AES_256_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_SEED_CBC_SHA", SSLSocket.TLS_RSA_WITH_SEED_CBC_SHA);
|
|
|
4cd948 |
- cipherMap.put("TLS_RSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
- cipherMap.put("TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", SSLSocket.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_anon_WITH_NULL_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_anon_WITH_NULL_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_anon_WITH_RC4_128_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_anon_WITH_RC4_128_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_anon_WITH_AES_128_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_anon_WITH_AES_256_CBC_SHA);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ // TLSv1_2
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_NULL_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_NULL_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_AES_128_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_AES_256_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_AES_256_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_SEED_CBC_SHA",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_SEED_CBC_SHA);
|
|
|
4cd948 |
+ cipherMap.put("TLS_RSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_DHE_DSS_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+ cipherMap.put("TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256",
|
|
|
4cd948 |
+ SSLSocket.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256);
|
|
|
4cd948 |
+
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- private static HashMap eccCipherMap = new HashMap();
|
|
|
4cd948 |
+ private static HashMap<Integer, String> eccCipherMap = new HashMap<Integer, String>();
|
|
|
4cd948 |
static {
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS_ECDHE_RSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS_ECDH_RSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS_ECDHE_ECDSA_WITH_NULL_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS_ECDHE_RSA_WITH_NULL_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_NULL_SHA, "TLS_ECDH_RSA_WITH_NULL_SHA");
|
|
|
4cd948 |
- eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS_ECDH_ECDSA_WITH_NULL_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_RC4_128_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_RSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_ECDSA_WITH_NULL_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_ECDSA_WITH_NULL_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDHE_RSA_WITH_NULL_SHA,
|
|
|
4cd948 |
+ "TLS_ECDHE_RSA_WITH_NULL_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_RSA_WITH_NULL_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_RSA_WITH_NULL_SHA");
|
|
|
4cd948 |
+ eccCipherMap.put(SSLSocket.TLS_ECDH_ECDSA_WITH_NULL_SHA,
|
|
|
4cd948 |
+ "TLS_ECDH_ECDSA_WITH_NULL_SHA");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
private AbstractEndpoint endpoint;
|
|
|
4cd948 |
|
|
|
4cd948 |
- static org.apache.commons.logging.Log log =
|
|
|
4cd948 |
- org.apache.commons.logging.LogFactory.getLog(JSSSocketFactory.class);
|
|
|
4cd948 |
+ static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory
|
|
|
4cd948 |
+ .getLog(JSSSocketFactory.class);
|
|
|
4cd948 |
|
|
|
4cd948 |
protected static boolean ocspConfigured = false;
|
|
|
4cd948 |
protected boolean requireClientAuth = false;
|
|
|
4cd948 |
protected boolean wantClientAuth = false;
|
|
|
4cd948 |
- private Vector enabledCiphers = new Vector();
|
|
|
4cd948 |
private boolean initialized = false;
|
|
|
4cd948 |
private String serverCertNick = "";
|
|
|
4cd948 |
- private String mServerCertNickPath ="";
|
|
|
4cd948 |
- private String mPwdPath ="";
|
|
|
4cd948 |
- private String mPwdClass ="";
|
|
|
4cd948 |
+ private String mServerCertNickPath = "";
|
|
|
4cd948 |
+ private String mPwdPath = "";
|
|
|
4cd948 |
+ private String mPwdClass = "";
|
|
|
4cd948 |
private static final String DATE_PATTERN = "dd/MMM/yyyy:HH:mm:ss";
|
|
|
4cd948 |
- private static SimpleDateFormat timeStampFormat = new SimpleDateFormat(DATE_PATTERN);
|
|
|
4cd948 |
+ private static SimpleDateFormat timeStampFormat = new SimpleDateFormat(
|
|
|
4cd948 |
+ DATE_PATTERN);
|
|
|
4cd948 |
FileWriter debugFile = null;
|
|
|
4cd948 |
boolean debug = false;
|
|
|
4cd948 |
private IPasswordStore mPasswordStore = null;
|
|
|
4cd948 |
private boolean mStrictCiphers = false;
|
|
|
4cd948 |
|
|
|
4cd948 |
- public JSSSocketFactory (AbstractEndpoint endpoint) {
|
|
|
4cd948 |
+ public JSSSocketFactory(AbstractEndpoint endpoint) {
|
|
|
4cd948 |
this.endpoint = endpoint;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
private void debugWrite(String m) throws IOException {
|
|
|
4cd948 |
- if (debug) {
|
|
|
4cd948 |
+ if (debug) {
|
|
|
4cd948 |
String timeStamp = timeStampFormat.format(new Date());
|
|
|
4cd948 |
String threadName = Thread.currentThread().getName();
|
|
|
4cd948 |
- debugFile.write("[" + timeStamp + "][" + threadName + "]: " + m);
|
|
|
4cd948 |
+ debugFile.write("[" + timeStamp + "][" + threadName + "]: " + m);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public void setSSLCiphers(String attr) throws SocketException, IOException
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
- String ciphers = (String)endpoint.getAttribute(attr);
|
|
|
4cd948 |
- if (ciphers == null || ciphers.equals("")) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory setSSLCiphers: "+ attr +" not found");
|
|
|
4cd948 |
- return;
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- StringTokenizer st = new StringTokenizer(ciphers, ",");
|
|
|
4cd948 |
- while (st.hasMoreTokens()) {
|
|
|
4cd948 |
- String cipherstr = st.nextToken();
|
|
|
4cd948 |
- int cipherid = 0;
|
|
|
4cd948 |
- String text;
|
|
|
4cd948 |
- boolean state;
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- if (cipherstr.startsWith("+")) {
|
|
|
4cd948 |
- state = true;
|
|
|
4cd948 |
- text = cipherstr.substring(1);
|
|
|
4cd948 |
- } else if (cipherstr.startsWith("-")) {
|
|
|
4cd948 |
- state = false;
|
|
|
4cd948 |
- text = cipherstr.substring(1);
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- state = true; // no enable/disable flag, assume enable
|
|
|
4cd948 |
- text = cipherstr;
|
|
|
4cd948 |
+ public void setSSLCiphers(String attr) throws SocketException, IOException {
|
|
|
4cd948 |
+ String ciphers = (String) endpoint.getAttribute(attr);
|
|
|
4cd948 |
+ if (ciphers == null || ciphers.equals("")) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory setSSLCiphers: " + attr + " not found");
|
|
|
4cd948 |
+ return;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
+ StringTokenizer st = new StringTokenizer(ciphers, ",");
|
|
|
4cd948 |
+ while (st.hasMoreTokens()) {
|
|
|
4cd948 |
+ String cipherstr = st.nextToken();
|
|
|
4cd948 |
+ int cipherid = 0;
|
|
|
4cd948 |
+ String text;
|
|
|
4cd948 |
+ boolean state;
|
|
|
4cd948 |
|
|
|
4cd948 |
- if (text.startsWith("0x") || text.startsWith("0X")) {
|
|
|
4cd948 |
- // this allows us to specify new ciphers
|
|
|
4cd948 |
- try {
|
|
|
4cd948 |
- cipherid = Integer.parseInt(text.substring(2), 16);
|
|
|
4cd948 |
+ if (cipherstr.startsWith("+")) {
|
|
|
4cd948 |
+ state = true;
|
|
|
4cd948 |
+ text = cipherstr.substring(1);
|
|
|
4cd948 |
+ } else if (cipherstr.startsWith("-")) {
|
|
|
4cd948 |
+ state = false;
|
|
|
4cd948 |
+ text = cipherstr.substring(1);
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ state = true; // no enable/disable flag, assume enable
|
|
|
4cd948 |
+ text = cipherstr;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- catch (Exception e) {
|
|
|
4cd948 |
- System.err.println("Error: SSL cipher \"\""+text+"\" cannot be read as an integer");
|
|
|
4cd948 |
- continue;
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- Object mapValue;
|
|
|
4cd948 |
|
|
|
4cd948 |
- mapValue = cipherMap.get(text);
|
|
|
4cd948 |
- if (mapValue == null) {
|
|
|
4cd948 |
- cipherid = 0;
|
|
|
4cd948 |
+ if (text.startsWith("0x") || text.startsWith("0X")) {
|
|
|
4cd948 |
+ // this allows us to specify new ciphers
|
|
|
4cd948 |
+ try {
|
|
|
4cd948 |
+ cipherid = Integer.parseInt(text.substring(2), 16);
|
|
|
4cd948 |
+ } catch (Exception e) {
|
|
|
4cd948 |
+ System.err.println("Error: SSL cipher \"\"" + text
|
|
|
4cd948 |
+ + "\" cannot be read as an integer");
|
|
|
4cd948 |
+ continue;
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
- cipherid = (Integer)mapValue;
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- if (cipherid != 0) {
|
|
|
4cd948 |
- try {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory setSSLCiphers: "+
|
|
|
4cd948 |
- cipherstr+": 0x"+Integer.toHexString(cipherid) +"\n");
|
|
|
4cd948 |
- SSLSocket.setCipherPreferenceDefault(cipherid, state);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- catch (Exception e) {
|
|
|
4cd948 |
- if (eccCipherMap.containsKey(cipherid)) {
|
|
|
4cd948 |
- System.err.println("Warning: SSL ECC cipher \""+text+"\" unsupported by NSS. "+
|
|
|
4cd948 |
- "This is probably O.K. unless ECC support has been installed.");
|
|
|
4cd948 |
+ Object mapValue;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ mapValue = cipherMap.get(text);
|
|
|
4cd948 |
+ if (mapValue == null) {
|
|
|
4cd948 |
+ cipherid = 0;
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
- System.err.println("Error: SSL cipher \""+text+"\" unsupported by NSS");
|
|
|
4cd948 |
+ cipherid = (Integer) mapValue;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- System.err.println("Error: SSL cipher \""+text+"\" not recognized by tomcatjss");
|
|
|
4cd948 |
+ if (cipherid != 0) {
|
|
|
4cd948 |
+ try {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory setSSLCiphers: " + cipherstr
|
|
|
4cd948 |
+ + ": 0x" + Integer.toHexString(cipherid) + "\n");
|
|
|
4cd948 |
+ SSLSocket.setCipherPreferenceDefault(cipherid, state);
|
|
|
4cd948 |
+ } catch (Exception e) {
|
|
|
4cd948 |
+ if (eccCipherMap.containsKey(cipherid)) {
|
|
|
4cd948 |
+ System.err
|
|
|
4cd948 |
+ .println("Warning: SSL ECC cipher \""
|
|
|
4cd948 |
+ + text
|
|
|
4cd948 |
+ + "\" unsupported by NSS. "
|
|
|
4cd948 |
+ + "This is probably O.K. unless ECC support has been installed.");
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ System.err.println("Error: SSL cipher \"" + text
|
|
|
4cd948 |
+ + "\" unsupported by NSS");
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ System.err.println("Error: SSL cipher \"" + text
|
|
|
4cd948 |
+ + "\" not recognized by tomcatjss");
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
/*
|
|
|
4cd948 |
- * note: the SSL_OptionSet-based API for controlling the enabled
|
|
|
4cd948 |
- * protocol versions are obsolete and replaced by the
|
|
|
4cd948 |
- * setSSLVersionRange calls. If the "range" parameters are
|
|
|
4cd948 |
- * present in the attributes then the sslOptions parameter is
|
|
|
4cd948 |
- * ignored.
|
|
|
4cd948 |
+ * note: the SSL_OptionSet-based API for controlling the enabled protocol
|
|
|
4cd948 |
+ * versions are obsolete and replaced by the setSSLVersionRange calls. If
|
|
|
4cd948 |
+ * the "range" parameters are present in the attributes then the sslOptions
|
|
|
4cd948 |
+ * parameter is ignored.
|
|
|
4cd948 |
*/
|
|
|
4cd948 |
- public void setSSLOptions() throws SocketException, IOException
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
- String options = (String)endpoint.getAttribute("sslOptions");
|
|
|
4cd948 |
- StringTokenizer st = new StringTokenizer(options, ",");
|
|
|
4cd948 |
- while (st.hasMoreTokens()) {
|
|
|
4cd948 |
- String option = st.nextToken();
|
|
|
4cd948 |
- StringTokenizer st1 = new StringTokenizer(option, "=");
|
|
|
4cd948 |
- String name = st1.nextToken();
|
|
|
4cd948 |
- String value = st1.nextToken();
|
|
|
4cd948 |
- if (name.equals("ssl2")) {
|
|
|
4cd948 |
- if (value.equals("true")) {
|
|
|
4cd948 |
- SSLSocket.enableSSL2Default(true);
|
|
|
4cd948 |
- setSSLCiphers("ssl2Ciphers");
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- SSLSocket.enableSSL2Default(false);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ public void setSSLOptions() throws SocketException, IOException {
|
|
|
4cd948 |
+ String options = (String) endpoint.getAttribute("sslOptions");
|
|
|
4cd948 |
+ StringTokenizer st = new StringTokenizer(options, ",");
|
|
|
4cd948 |
+ while (st.hasMoreTokens()) {
|
|
|
4cd948 |
+ String option = st.nextToken();
|
|
|
4cd948 |
+ StringTokenizer st1 = new StringTokenizer(option, "=");
|
|
|
4cd948 |
+ String name = st1.nextToken();
|
|
|
4cd948 |
+ String value = st1.nextToken();
|
|
|
4cd948 |
+ if (name.equals("ssl2")) {
|
|
|
4cd948 |
+ if (value.equals("true")) {
|
|
|
4cd948 |
+ SSLSocket.enableSSL2Default(true);
|
|
|
4cd948 |
+ setSSLCiphers("ssl2Ciphers");
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ SSLSocket.enableSSL2Default(false);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ if (name.equals("ssl3")) {
|
|
|
4cd948 |
+ if (value.equals("true")) {
|
|
|
4cd948 |
+ SSLSocket.enableSSL3Default(true);
|
|
|
4cd948 |
+ setSSLCiphers("ssl3Ciphers");
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ SSLSocket.enableSSL3Default(false);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ if (name.equals("tls")) {
|
|
|
4cd948 |
+ if (value.equals("true")) {
|
|
|
4cd948 |
+ SSLSocket.enableTLSDefault(true);
|
|
|
4cd948 |
+ setSSLCiphers("tlsCiphers");
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
+ SSLSocket.enableTLSDefault(false);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- if (name.equals("ssl3")) {
|
|
|
4cd948 |
- if (value.equals("true")) {
|
|
|
4cd948 |
- SSLSocket.enableSSL3Default(true);
|
|
|
4cd948 |
- setSSLCiphers("ssl3Ciphers");
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- SSLSocket.enableSSL3Default(false);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- if (name.equals("tls")) {
|
|
|
4cd948 |
- if (value.equals("true")) {
|
|
|
4cd948 |
- SSLSocket.enableTLSDefault(true);
|
|
|
4cd948 |
- setSSLCiphers("tlsCiphers");
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
- SSLSocket.enableTLSDefault(false);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
// remove all to start with a clean slate
|
|
|
4cd948 |
- public void unsetSSLCiphers() throws SocketException
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
+ public void unsetSSLCiphers() throws SocketException {
|
|
|
4cd948 |
int ciphers[] = SSLSocket.getImplementedCipherSuites();
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
- for (int i = 0; ciphers != null && i < ciphers.length; i++) {
|
|
|
4cd948 |
+ for (int i = 0; ciphers != null && i < ciphers.length; i++) {
|
|
|
4cd948 |
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory unsetSSLCiphers - turning off '0x"+
|
|
|
4cd948 |
- Integer.toHexString(ciphers[i]) + "'\n");
|
|
|
4cd948 |
- SSLSocket.setCipherPreferenceDefault(ciphers[i], false);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory unsetSSLCiphers - turning off '0x"
|
|
|
4cd948 |
+ + Integer.toHexString(ciphers[i]) + "'\n");
|
|
|
4cd948 |
+ SSLSocket.setCipherPreferenceDefault(ciphers[i], false);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
-
|
|
|
4cd948 |
/*
|
|
|
4cd948 |
- * setSSLVersionRangeDefault sets the range of allowed ssl versions.
|
|
|
4cd948 |
- * This replaces the obsolete SSL_Option* API
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
- * @param protoVariant indicates whether this setting is for
|
|
|
4cd948 |
- type "stream" or "datagram"
|
|
|
4cd948 |
- * @param sslVersionRange_s takes on the form of "min:max" where
|
|
|
4cd948 |
- * min/max values can be "ssl3, tls1_0, tls1_1, or tls1_2"
|
|
|
4cd948 |
- * ssl2 is not supported for tomcatjss via this interface
|
|
|
4cd948 |
- * The format is "sslVersionRange=min:max"
|
|
|
4cd948 |
+ * setSSLVersionRangeDefault sets the range of allowed ssl versions. This
|
|
|
4cd948 |
+ * replaces the obsolete SSL_Option* API
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
+ * @param protoVariant indicates whether this setting is for type "stream"
|
|
|
4cd948 |
+ * or "datagram"
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
+ * @param sslVersionRange_s takes on the form of "min:max" where min/max
|
|
|
4cd948 |
+ * values can be "ssl3, tls1_0, tls1_1, or tls1_2" ssl2 is not supported for
|
|
|
4cd948 |
+ * tomcatjss via this interface The format is "sslVersionRange=min:max"
|
|
|
4cd948 |
*/
|
|
|
4cd948 |
public void setSSLVersionRangeDefault(
|
|
|
4cd948 |
org.mozilla.jss.ssl.SSLSocket.SSLProtocolVariant protoVariant,
|
|
|
4cd948 |
- String sslVersionRange_s)
|
|
|
4cd948 |
- throws SocketException, IllegalArgumentException, IOException {
|
|
|
4cd948 |
+ String sslVersionRange_s) throws SocketException,
|
|
|
4cd948 |
+ IllegalArgumentException, IOException {
|
|
|
4cd948 |
|
|
|
4cd948 |
// process sslVersionRange_s
|
|
|
4cd948 |
- String[] sslVersionRange = sslVersionRange_s.split(":");
|
|
|
4cd948 |
+ String[] sslVersionRange = sslVersionRange_s.split(":");
|
|
|
4cd948 |
if (sslVersionRange.length != 2) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range format error: " + sslVersionRange_s +"\n");
|
|
|
4cd948 |
- throw new SocketException("tomcatjss: setSSLversionRangeDefault format error");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range format error: "
|
|
|
4cd948 |
+ + sslVersionRange_s + "\n");
|
|
|
4cd948 |
+ throw new SocketException(
|
|
|
4cd948 |
+ "tomcatjss: setSSLversionRangeDefault format error");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
String min_s = sslVersionRange[0];
|
|
|
4cd948 |
String max_s = sslVersionRange[1];
|
|
|
4cd948 |
int min = getSSLVersionRangeEnum(min_s);
|
|
|
4cd948 |
int max = getSSLVersionRangeEnum(max_s);
|
|
|
4cd948 |
- if ((min == -1) || (max== -1)) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range format error: " + sslVersionRange_s +"\n");
|
|
|
4cd948 |
- throw new SocketException("tomcatjss: setSSLversionRangeDefault format error");
|
|
|
4cd948 |
+ if ((min == -1) || (max == -1)) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range format error: "
|
|
|
4cd948 |
+ + sslVersionRange_s + "\n");
|
|
|
4cd948 |
+ throw new SocketException(
|
|
|
4cd948 |
+ "tomcatjss: setSSLversionRangeDefault format error");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range set to min=" + min + " max = " + max +"\n");
|
|
|
4cd948 |
- org.mozilla.jss.ssl.SSLSocket.SSLVersionRange range =
|
|
|
4cd948 |
- new org.mozilla.jss.ssl.SSLSocket.SSLVersionRange(min, max);
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory setSSLversionRangeDefault- SSL Version Range set to min="
|
|
|
4cd948 |
+ + min + " max = " + max + "\n");
|
|
|
4cd948 |
+ org.mozilla.jss.ssl.SSLSocket.SSLVersionRange range = new org.mozilla.jss.ssl.SSLSocket.SSLVersionRange(
|
|
|
4cd948 |
+ min, max);
|
|
|
4cd948 |
|
|
|
4cd948 |
SSLSocket.setSSLVersionRangeDefault(protoVariant, range);
|
|
|
4cd948 |
debugWrite("JSSSocketFactory setSSLversionRangeDefault- variant set\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- int getSSLVersionRangeEnum (String rangeString) {
|
|
|
4cd948 |
+ int getSSLVersionRangeEnum(String rangeString) {
|
|
|
4cd948 |
if (rangeString == null)
|
|
|
4cd948 |
return -1;
|
|
|
4cd948 |
if (rangeString.equals("ssl3"))
|
|
|
4cd948 |
@@ -393,39 +518,40 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
void init() throws IOException {
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
- String deb = (String)endpoint.getAttribute("debug");
|
|
|
4cd948 |
+ String deb = (String) endpoint.getAttribute("debug");
|
|
|
4cd948 |
if (deb.equals("true")) {
|
|
|
4cd948 |
- debug = true;
|
|
|
4cd948 |
- debugFile = new FileWriter("/tmp/tomcatjss.log", true);
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - debug is on\n");
|
|
|
4cd948 |
+ debug = true;
|
|
|
4cd948 |
+ debugFile = new FileWriter("/tmp/tomcatjss.log", true);
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - debug is on\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
- // System.out.println("no tomcatjss debugging");
|
|
|
4cd948 |
+ // System.out.println("no tomcatjss debugging");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
- mPwdPath = (String)endpoint.getAttribute("passwordFile");
|
|
|
4cd948 |
- mPwdClass = (String)endpoint.getAttribute("passwordClass");
|
|
|
4cd948 |
- if (mPwdClass != null) {
|
|
|
4cd948 |
- mPasswordStore = (IPasswordStore)Class.forName(mPwdClass).newInstance();
|
|
|
4cd948 |
+ mPwdPath = (String) endpoint.getAttribute("passwordFile");
|
|
|
4cd948 |
+ mPwdClass = (String) endpoint.getAttribute("passwordClass");
|
|
|
4cd948 |
+ if (mPwdClass != null) {
|
|
|
4cd948 |
+ mPasswordStore = (IPasswordStore) Class.forName(mPwdClass)
|
|
|
4cd948 |
+ .newInstance();
|
|
|
4cd948 |
mPasswordStore.init(mPwdPath);
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - password reader initialized\n");
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- } catch (Exception e) {
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ } catch (Exception e) {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - Exception caught: "
|
|
|
4cd948 |
- +e.toString() + "\n");
|
|
|
4cd948 |
+ + e.toString() + "\n");
|
|
|
4cd948 |
if (debugFile != null)
|
|
|
4cd948 |
debugFile.close();
|
|
|
4cd948 |
- throw new IOException("JSSSocketFactory: no passwordFilePath defined");
|
|
|
4cd948 |
+ throw new IOException(
|
|
|
4cd948 |
+ "JSSSocketFactory: no passwordFilePath defined");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- String certDir = (String)endpoint.getAttribute("certdbDir");
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- CryptoManager.InitializationValues vals =
|
|
|
4cd948 |
- new CryptoManager.InitializationValues(certDir,
|
|
|
4cd948 |
- "", "", "secmod.db");
|
|
|
4cd948 |
+ String certDir = (String) endpoint.getAttribute("certdbDir");
|
|
|
4cd948 |
|
|
|
4cd948 |
+ CryptoManager.InitializationValues vals = new CryptoManager.InitializationValues(
|
|
|
4cd948 |
+ certDir, "", "", "secmod.db");
|
|
|
4cd948 |
+
|
|
|
4cd948 |
vals.removeSunProvider = false;
|
|
|
4cd948 |
vals.installJSSProvider = true;
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
@@ -435,22 +561,22 @@
|
|
|
4cd948 |
}
|
|
|
4cd948 |
CryptoManager manager = CryptoManager.getInstance();
|
|
|
4cd948 |
|
|
|
4cd948 |
- //JSSSocketFactory init - handle crypto tokens
|
|
|
4cd948 |
+ // JSSSocketFactory init - handle crypto tokens
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - about to handle crypto unit logins\n");
|
|
|
4cd948 |
|
|
|
4cd948 |
if (mPasswordStore != null) {
|
|
|
4cd948 |
- Enumeration en = mPasswordStore.getTags();
|
|
|
4cd948 |
- while (en.hasMoreElements()){
|
|
|
4cd948 |
+ Enumeration en = mPasswordStore.getTags();
|
|
|
4cd948 |
+ while (en.hasMoreElements()) {
|
|
|
4cd948 |
String pwd = "";
|
|
|
4cd948 |
Password pw = null;
|
|
|
4cd948 |
String tokenName = "";
|
|
|
4cd948 |
String st = (String) en.nextElement();
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - tag name="+st+"\n");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - tag name=" + st + "\n");
|
|
|
4cd948 |
pwd = mPasswordStore.getPassword(st);
|
|
|
4cd948 |
|
|
|
4cd948 |
if (pwd != null) {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - got password\n");
|
|
|
4cd948 |
- pw = new Password(pwd.toCharArray());
|
|
|
4cd948 |
+ pw = new Password(pwd.toCharArray());
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - no pwd found in password.conf\n");
|
|
|
4cd948 |
continue;
|
|
|
4cd948 |
@@ -464,12 +590,13 @@
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - got hardware\n");
|
|
|
4cd948 |
|
|
|
4cd948 |
tokenName = st.substring(9);
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - tokenName="+tokenName+"\n");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - tokenName="
|
|
|
4cd948 |
+ + tokenName + "\n");
|
|
|
4cd948 |
|
|
|
4cd948 |
// find the hsm and log in
|
|
|
4cd948 |
token = manager.getTokenByName(tokenName);
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
- //non-token entries
|
|
|
4cd948 |
+ // non-token entries
|
|
|
4cd948 |
}
|
|
|
4cd948 |
if (token != null) {
|
|
|
4cd948 |
if (!token.isLoggedIn()) {
|
|
|
4cd948 |
@@ -479,15 +606,15 @@
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - already logged in\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- } //while
|
|
|
4cd948 |
+ } // while
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - tokens initialized/logged in\n");
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - no login done\n");
|
|
|
4cd948 |
- } //mPasswordStore not null
|
|
|
4cd948 |
+ } // mPasswordStore not null
|
|
|
4cd948 |
|
|
|
4cd948 |
// MUST look for "clientauth" (ALL lowercase) since "clientAuth"
|
|
|
4cd948 |
// (camel case) has already been processed by Tomcat 7
|
|
|
4cd948 |
- String clientAuthStr = (String)endpoint.getAttribute("clientauth");
|
|
|
4cd948 |
+ String clientAuthStr = (String) endpoint.getAttribute("clientauth");
|
|
|
4cd948 |
if (clientAuthStr == null) {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - \"clientauth\" not found, default to want.");
|
|
|
4cd948 |
clientAuthStr = "want";
|
|
|
4cd948 |
@@ -494,178 +621,208 @@
|
|
|
4cd948 |
}
|
|
|
4cd948 |
File file = null;
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
- mServerCertNickPath = (String)endpoint.getAttribute("serverCertNickFile");
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - got serverCertNickFile"+
|
|
|
4cd948 |
- mServerCertNickPath+"\n");
|
|
|
4cd948 |
+ mServerCertNickPath = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("serverCertNickFile");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - got serverCertNickFile"
|
|
|
4cd948 |
+ + mServerCertNickPath + "\n");
|
|
|
4cd948 |
file = new File(mServerCertNickPath);
|
|
|
4cd948 |
- Long l = new Long(file.length());
|
|
|
4cd948 |
FileInputStream in = new FileInputStream(mServerCertNickPath);
|
|
|
4cd948 |
- BufferedReader d =
|
|
|
4cd948 |
- new BufferedReader(new InputStreamReader(in));
|
|
|
4cd948 |
+ BufferedReader d = new BufferedReader(new InputStreamReader(in));
|
|
|
4cd948 |
do {
|
|
|
4cd948 |
- serverCertNick = d.readLine();
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - got line "+
|
|
|
4cd948 |
- serverCertNick +"\n");
|
|
|
4cd948 |
- if (serverCertNick == null) {
|
|
|
4cd948 |
- in.close();
|
|
|
4cd948 |
- d.close();
|
|
|
4cd948 |
- throw new IOException("JSSSocketFactory: error loading serverCertNickFile");
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- // handle comments or blank lines
|
|
|
4cd948 |
- if (serverCertNick.trim().startsWith("#") ||
|
|
|
4cd948 |
- serverCertNick.trim().equals("")) {
|
|
|
4cd948 |
- serverCertNick = null;
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ serverCertNick = d.readLine();
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - got line "
|
|
|
4cd948 |
+ + serverCertNick + "\n");
|
|
|
4cd948 |
+ if (serverCertNick == null) {
|
|
|
4cd948 |
+ in.close();
|
|
|
4cd948 |
+ d.close();
|
|
|
4cd948 |
+ throw new IOException(
|
|
|
4cd948 |
+ "JSSSocketFactory: error loading serverCertNickFile");
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ // handle comments or blank lines
|
|
|
4cd948 |
+ if (serverCertNick.trim().startsWith("#")
|
|
|
4cd948 |
+ || serverCertNick.trim().equals("")) {
|
|
|
4cd948 |
+ serverCertNick = null;
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
} while (serverCertNick == null);
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - found nickname=" + serverCertNick + "\n");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - found nickname="
|
|
|
4cd948 |
+ + serverCertNick + "\n");
|
|
|
4cd948 |
in.close();
|
|
|
4cd948 |
d.close();
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - Exception caught: "
|
|
|
4cd948 |
- +e.toString() + "\n");
|
|
|
4cd948 |
+ + e.toString() + "\n");
|
|
|
4cd948 |
if (debugFile != null)
|
|
|
4cd948 |
debugFile.close();
|
|
|
4cd948 |
- throw new IOException("JSSSocketFactory: no serverCertNickFile defined");
|
|
|
4cd948 |
+ throw new IOException(
|
|
|
4cd948 |
+ "JSSSocketFactory: no serverCertNickFile defined");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- //serverCertNick = (String)endpoint.getAttribute("serverCert");
|
|
|
4cd948 |
- if (clientAuthStr.equalsIgnoreCase("true") ||
|
|
|
4cd948 |
- clientAuthStr.equalsIgnoreCase("yes")) {
|
|
|
4cd948 |
+ // serverCertNick = (String)endpoint.getAttribute("serverCert");
|
|
|
4cd948 |
+ if (clientAuthStr.equalsIgnoreCase("true")
|
|
|
4cd948 |
+ || clientAuthStr.equalsIgnoreCase("yes")) {
|
|
|
4cd948 |
requireClientAuth = true;
|
|
|
4cd948 |
} else if (clientAuthStr.equalsIgnoreCase("want")) {
|
|
|
4cd948 |
wantClientAuth = true;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- debugWrite("JSSSocketFActory init - requireClientAuth " + requireClientAuth +
|
|
|
4cd948 |
- " wantClientAuth " + wantClientAuth + " ocspConfigured "
|
|
|
4cd948 |
- + ocspConfigured);
|
|
|
4cd948 |
- if (requireClientAuth == true || wantClientAuth == true
|
|
|
4cd948 |
- && ocspConfigured == false ) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - checking for OCSP settings. \n" );
|
|
|
4cd948 |
- boolean enableOCSP = false;
|
|
|
4cd948 |
+ debugWrite("JSSSocketFActory init - requireClientAuth "
|
|
|
4cd948 |
+ + requireClientAuth + " wantClientAuth " + wantClientAuth
|
|
|
4cd948 |
+ + " ocspConfigured " + ocspConfigured);
|
|
|
4cd948 |
+ if (requireClientAuth == true || wantClientAuth == true
|
|
|
4cd948 |
+ && ocspConfigured == false) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - checking for OCSP settings. \n");
|
|
|
4cd948 |
+ boolean enableOCSP = false;
|
|
|
4cd948 |
String doOCSP = (String) endpoint.getAttribute("enableOCSP");
|
|
|
4cd948 |
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - doOCSP flag:"+
|
|
|
4cd948 |
- doOCSP+ " \n");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - doOCSP flag:" + doOCSP
|
|
|
4cd948 |
+ + " \n");
|
|
|
4cd948 |
|
|
|
4cd948 |
- if (doOCSP != null && doOCSP.equalsIgnoreCase("true")) {
|
|
|
4cd948 |
- enableOCSP = true;
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - enableOCSP "+
|
|
|
4cd948 |
- enableOCSP+ "\n");
|
|
|
4cd948 |
-
|
|
|
4cd948 |
- if( enableOCSP == true ) {
|
|
|
4cd948 |
- String ocspResponderURL = (String) endpoint.getAttribute("ocspResponderURL");
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspResponderURL "+
|
|
|
4cd948 |
- ocspResponderURL+ "\n");
|
|
|
4cd948 |
- String ocspResponderCertNickname = (String) endpoint.getAttribute("ocspResponderCertNickname");
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspResponderCertNickname" + ocspResponderCertNickname + "\n");
|
|
|
4cd948 |
- if( (ocspResponderURL != null && ocspResponderURL.length() > 0) &&
|
|
|
4cd948 |
- (ocspResponderCertNickname != null &&
|
|
|
4cd948 |
- ocspResponderCertNickname.length() > 0 )) {
|
|
|
4cd948 |
+ if (doOCSP != null && doOCSP.equalsIgnoreCase("true")) {
|
|
|
4cd948 |
+ enableOCSP = true;
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
|
|
|
4cd948 |
- ocspConfigured = true;
|
|
|
4cd948 |
- try {
|
|
|
4cd948 |
- manager.configureOCSP(true,ocspResponderURL,ocspResponderCertNickname);
|
|
|
4cd948 |
- int ocspCacheSize_i = 1000;
|
|
|
4cd948 |
- int ocspMinCacheEntryDuration_i = 3600;
|
|
|
4cd948 |
- int ocspMaxCacheEntryDuration_i = 86400;
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - enableOCSP " + enableOCSP
|
|
|
4cd948 |
+ + "\n");
|
|
|
4cd948 |
|
|
|
4cd948 |
- String ocspCacheSize = (String) endpoint.getAttribute("ocspCacheSize");
|
|
|
4cd948 |
- String ocspMinCacheEntryDuration = (String) endpoint.getAttribute("ocspMinCacheEntryDuration");
|
|
|
4cd948 |
- String ocspMaxCacheEntryDuration = (String) endpoint.getAttribute("ocspMaxCacheEntryDuration");
|
|
|
4cd948 |
+ if (enableOCSP == true) {
|
|
|
4cd948 |
+ String ocspResponderURL = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspResponderURL");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspResponderURL "
|
|
|
4cd948 |
+ + ocspResponderURL + "\n");
|
|
|
4cd948 |
+ String ocspResponderCertNickname = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspResponderCertNickname");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspResponderCertNickname"
|
|
|
4cd948 |
+ + ocspResponderCertNickname + "\n");
|
|
|
4cd948 |
+ if ((ocspResponderURL != null && ocspResponderURL.length() > 0)
|
|
|
4cd948 |
+ && (ocspResponderCertNickname != null && ocspResponderCertNickname
|
|
|
4cd948 |
+ .length() > 0)) {
|
|
|
4cd948 |
|
|
|
4cd948 |
- if (ocspCacheSize != null ||
|
|
|
4cd948 |
- ocspMinCacheEntryDuration != null ||
|
|
|
4cd948 |
- ocspMaxCacheEntryDuration != null) {
|
|
|
4cd948 |
- // not specified then takes the default
|
|
|
4cd948 |
- if (ocspCacheSize != null) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspCacheSize= " + ocspCacheSize+"\n");
|
|
|
4cd948 |
- ocspCacheSize_i = Integer.parseInt(ocspCacheSize);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- if (ocspMinCacheEntryDuration != null) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspMinCacheEntryDuration= " + ocspMinCacheEntryDuration+"\n");
|
|
|
4cd948 |
- ocspMinCacheEntryDuration_i = Integer.parseInt(ocspMinCacheEntryDuration);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- if (ocspMaxCacheEntryDuration != null) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspMaxCacheEntryDuration= " + ocspMaxCacheEntryDuration+"\n");
|
|
|
4cd948 |
- ocspMaxCacheEntryDuration_i = Integer.parseInt(ocspMaxCacheEntryDuration);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- manager.OCSPCacheSettings(ocspCacheSize_i,
|
|
|
4cd948 |
- ocspMinCacheEntryDuration_i, ocspMaxCacheEntryDuration_i);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ ocspConfigured = true;
|
|
|
4cd948 |
+ try {
|
|
|
4cd948 |
+ manager.configureOCSP(true, ocspResponderURL,
|
|
|
4cd948 |
+ ocspResponderCertNickname);
|
|
|
4cd948 |
+ int ocspCacheSize_i = 1000;
|
|
|
4cd948 |
+ int ocspMinCacheEntryDuration_i = 3600;
|
|
|
4cd948 |
+ int ocspMaxCacheEntryDuration_i = 86400;
|
|
|
4cd948 |
|
|
|
4cd948 |
- // defualt to 60 seconds;
|
|
|
4cd948 |
- String ocspTimeout = (String) endpoint.getAttribute("ocspTimeout");
|
|
|
4cd948 |
- if (ocspTimeout != null) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - ocspTimeout= \n" + ocspTimeout);
|
|
|
4cd948 |
- int ocspTimeout_i = Integer.parseInt(ocspTimeout);
|
|
|
4cd948 |
- if (ocspTimeout_i < 0)
|
|
|
4cd948 |
- ocspTimeout_i = 60;
|
|
|
4cd948 |
- manager.setOCSPTimeout(ocspTimeout_i);
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ String ocspCacheSize = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspCacheSize");
|
|
|
4cd948 |
+ String ocspMinCacheEntryDuration = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspMinCacheEntryDuration");
|
|
|
4cd948 |
+ String ocspMaxCacheEntryDuration = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspMaxCacheEntryDuration");
|
|
|
4cd948 |
|
|
|
4cd948 |
- } catch(java.security.GeneralSecurityException e) {
|
|
|
4cd948 |
- ocspConfigured = false;
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - error initializing OCSP e: " + e.toString()+"\n");
|
|
|
4cd948 |
- throw new java.security.GeneralSecurityException("Error setting up OCSP. Check configuraion!");
|
|
|
4cd948 |
- } catch (java.lang.NumberFormatException e) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - error setting OCSP cache e: " + e.toString()+"\n");
|
|
|
4cd948 |
- throw new java.lang.NumberFormatException("Error setting OCSP cache. Check configuraion!");
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
- } else {
|
|
|
4cd948 |
+ if (ocspCacheSize != null
|
|
|
4cd948 |
+ || ocspMinCacheEntryDuration != null
|
|
|
4cd948 |
+ || ocspMaxCacheEntryDuration != null) {
|
|
|
4cd948 |
+ // not specified then takes the default
|
|
|
4cd948 |
+ if (ocspCacheSize != null) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspCacheSize= "
|
|
|
4cd948 |
+ + ocspCacheSize + "\n");
|
|
|
4cd948 |
+ ocspCacheSize_i = Integer
|
|
|
4cd948 |
+ .parseInt(ocspCacheSize);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ if (ocspMinCacheEntryDuration != null) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspMinCacheEntryDuration= "
|
|
|
4cd948 |
+ + ocspMinCacheEntryDuration + "\n");
|
|
|
4cd948 |
+ ocspMinCacheEntryDuration_i = Integer
|
|
|
4cd948 |
+ .parseInt(ocspMinCacheEntryDuration);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ if (ocspMaxCacheEntryDuration != null) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspMaxCacheEntryDuration= "
|
|
|
4cd948 |
+ + ocspMaxCacheEntryDuration + "\n");
|
|
|
4cd948 |
+ ocspMaxCacheEntryDuration_i = Integer
|
|
|
4cd948 |
+ .parseInt(ocspMaxCacheEntryDuration);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ manager.OCSPCacheSettings(ocspCacheSize_i,
|
|
|
4cd948 |
+ ocspMinCacheEntryDuration_i,
|
|
|
4cd948 |
+ ocspMaxCacheEntryDuration_i);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ // defualt to 60 seconds;
|
|
|
4cd948 |
+ String ocspTimeout = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("ocspTimeout");
|
|
|
4cd948 |
+ if (ocspTimeout != null) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - ocspTimeout= \n"
|
|
|
4cd948 |
+ + ocspTimeout);
|
|
|
4cd948 |
+ int ocspTimeout_i = Integer
|
|
|
4cd948 |
+ .parseInt(ocspTimeout);
|
|
|
4cd948 |
+ if (ocspTimeout_i < 0)
|
|
|
4cd948 |
+ ocspTimeout_i = 60;
|
|
|
4cd948 |
+ manager.setOCSPTimeout(ocspTimeout_i);
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ } catch (java.security.GeneralSecurityException e) {
|
|
|
4cd948 |
+ ocspConfigured = false;
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - error initializing OCSP e: "
|
|
|
4cd948 |
+ + e.toString() + "\n");
|
|
|
4cd948 |
+ throw new java.security.GeneralSecurityException(
|
|
|
4cd948 |
+ "Error setting up OCSP. Check configuraion!");
|
|
|
4cd948 |
+ } catch (java.lang.NumberFormatException e) {
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - error setting OCSP cache e: "
|
|
|
4cd948 |
+ + e.toString() + "\n");
|
|
|
4cd948 |
+ throw new java.lang.NumberFormatException(
|
|
|
4cd948 |
+ "Error setting OCSP cache. Check configuraion!");
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
+ } else {
|
|
|
4cd948 |
debugWrite("JSSSocketFactory init - error ocsp misconfigured! \n");
|
|
|
4cd948 |
- throw new java.security.GeneralSecurityException("Error setting up OCSP. Check configuration!");
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ throw new java.security.GeneralSecurityException(
|
|
|
4cd948 |
+ "Error setting up OCSP. Check configuration!");
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- //serverCertNick = "Server-Cert cert-tks";
|
|
|
4cd948 |
+ // serverCertNick = "Server-Cert cert-tks";
|
|
|
4cd948 |
// 12 hours = 43200 seconds
|
|
|
4cd948 |
SSLServerSocket.configServerSessionIDCache(0, 43200, 43200, null);
|
|
|
4cd948 |
|
|
|
4cd948 |
- String strictCiphersStr = (String)endpoint.getAttribute("strictCiphers");
|
|
|
4cd948 |
- if (strictCiphersStr.equalsIgnoreCase("true") ||
|
|
|
4cd948 |
- strictCiphersStr.equalsIgnoreCase("yes")) {
|
|
|
4cd948 |
+ String strictCiphersStr = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("strictCiphers");
|
|
|
4cd948 |
+ if (strictCiphersStr.equalsIgnoreCase("true")
|
|
|
4cd948 |
+ || strictCiphersStr.equalsIgnoreCase("yes")) {
|
|
|
4cd948 |
mStrictCiphers = true;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
if (mStrictCiphers == true) {
|
|
|
4cd948 |
// what ciphers do we have to start with? turn them all off
|
|
|
4cd948 |
- debugWrite("SSSocketFactory init - before setSSLCiphers, strictCiphers is true\n");
|
|
|
4cd948 |
- unsetSSLCiphers();
|
|
|
4cd948 |
+ debugWrite("SSSocketFactory init - before setSSLCiphers, strictCiphers is true\n");
|
|
|
4cd948 |
+ unsetSSLCiphers();
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
- debugWrite("SSSocketFactory init - before setSSLCiphers, strictCiphers is false\n");
|
|
|
4cd948 |
+ debugWrite("SSSocketFactory init - before setSSLCiphers, strictCiphers is false\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- String sslVersionRangeStream = (String)endpoint.getAttribute("sslVersionRangeStream");
|
|
|
4cd948 |
- if ((sslVersionRangeStream != null) && !sslVersionRangeStream.equals("")) {
|
|
|
4cd948 |
+ String sslVersionRangeStream = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("sslVersionRangeStream");
|
|
|
4cd948 |
+ if ((sslVersionRangeStream != null)
|
|
|
4cd948 |
+ && !sslVersionRangeStream.equals("")) {
|
|
|
4cd948 |
debugWrite("SSSocketFactory init - calling setSSLVersionRangeDefault() for type STREAM\n");
|
|
|
4cd948 |
- setSSLVersionRangeDefault(org.mozilla.jss.ssl.SSLSocket.SSLProtocolVariant.STREAM, sslVersionRangeStream);
|
|
|
4cd948 |
+ setSSLVersionRangeDefault(
|
|
|
4cd948 |
+ org.mozilla.jss.ssl.SSLSocket.SSLProtocolVariant.STREAM,
|
|
|
4cd948 |
+ sslVersionRangeStream);
|
|
|
4cd948 |
debugWrite("SSSocketFactory init - after setSSLVersionRangeDefault() for type STREAM\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- String sslVersionRangeDatagram = (String)endpoint.getAttribute("sslVersionRangeDatagram");
|
|
|
4cd948 |
- if ((sslVersionRangeDatagram != null) && !sslVersionRangeDatagram.equals("")) {
|
|
|
4cd948 |
+ String sslVersionRangeDatagram = (String) endpoint
|
|
|
4cd948 |
+ .getAttribute("sslVersionRangeDatagram");
|
|
|
4cd948 |
+ if ((sslVersionRangeDatagram != null)
|
|
|
4cd948 |
+ && !sslVersionRangeDatagram.equals("")) {
|
|
|
4cd948 |
debugWrite("SSSocketFactory init - calling setSSLVersionRangeDefault() for type DATA_GRAM\n");
|
|
|
4cd948 |
- setSSLVersionRangeDefault(org.mozilla.jss.ssl.SSLSocket.SSLProtocolVariant.DATA_GRAM, sslVersionRangeDatagram);
|
|
|
4cd948 |
+ setSSLVersionRangeDefault(
|
|
|
4cd948 |
+ org.mozilla.jss.ssl.SSLSocket.SSLProtocolVariant.DATA_GRAM,
|
|
|
4cd948 |
+ sslVersionRangeDatagram);
|
|
|
4cd948 |
debugWrite("SSSocketFactory init - after setSSLVersionRangeDefault() for type DATA_GRAM\n");
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
/*
|
|
|
4cd948 |
- * According to NSS:
|
|
|
4cd948 |
- * the SSL_OptionSet-based API for controlling the enabled
|
|
|
4cd948 |
- * protocol versions are obsolete and replaced by the
|
|
|
4cd948 |
- * setSSLVersionRange calls.
|
|
|
4cd948 |
- * Therefore, if the "range" parameters are
|
|
|
4cd948 |
- * present in the attributes then the sslOptions parameter is
|
|
|
4cd948 |
- * ignored.
|
|
|
4cd948 |
- * Using the new version range API in conjunction with the older
|
|
|
4cd948 |
- * SSL_OptionSet-based API for controlling the enabled protocol
|
|
|
4cd948 |
- * versions may cause unexpected results
|
|
|
4cd948 |
+ * According to NSS: the SSL_OptionSet-based API for controlling the
|
|
|
4cd948 |
+ * enabled protocol versions are obsolete and replaced by the
|
|
|
4cd948 |
+ * setSSLVersionRange calls. Therefore, if the "range" parameters
|
|
|
4cd948 |
+ * are present in the attributes then the sslOptions parameter is
|
|
|
4cd948 |
+ * ignored. Using the new version range API in conjunction with the
|
|
|
4cd948 |
+ * older SSL_OptionSet-based API for controlling the enabled
|
|
|
4cd948 |
+ * protocol versions may cause unexpected results
|
|
|
4cd948 |
*/
|
|
|
4cd948 |
- if (((sslVersionRangeStream != null)
|
|
|
4cd948 |
- && !sslVersionRangeStream.equals(""))
|
|
|
4cd948 |
- || ((sslVersionRangeDatagram != null)
|
|
|
4cd948 |
- && !sslVersionRangeDatagram.equals(""))) {
|
|
|
4cd948 |
+ if (((sslVersionRangeStream != null) && !sslVersionRangeStream
|
|
|
4cd948 |
+ .equals(""))
|
|
|
4cd948 |
+ || ((sslVersionRangeDatagram != null) && !sslVersionRangeDatagram
|
|
|
4cd948 |
+ .equals(""))) {
|
|
|
4cd948 |
/* deliberately lose the ssl2 here */
|
|
|
4cd948 |
debugWrite("SSSocketFactory init - calling setSSLCiphers() honoring only sslRangeCiphers\n");
|
|
|
4cd948 |
setSSLCiphers("sslRangeCiphers");
|
|
|
4cd948 |
@@ -677,18 +834,18 @@
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
} catch (Exception ex) {
|
|
|
4cd948 |
- debugWrite("JSSSocketFactory init - exception thrown:"+
|
|
|
4cd948 |
- ex.toString()+"\n");
|
|
|
4cd948 |
- System.err.println("JSSSocketFactory init - exception thrown:"+
|
|
|
4cd948 |
- ex.toString()+"\n");
|
|
|
4cd948 |
+ debugWrite("JSSSocketFactory init - exception thrown:"
|
|
|
4cd948 |
+ + ex.toString() + "\n");
|
|
|
4cd948 |
+ System.err.println("JSSSocketFactory init - exception thrown:"
|
|
|
4cd948 |
+ + ex.toString() + "\n");
|
|
|
4cd948 |
if (debugFile != null)
|
|
|
4cd948 |
debugFile.close();
|
|
|
4cd948 |
// The idea is, if admin take the trouble to configure the
|
|
|
4cd948 |
// ocsp cache, and made a mistake, we want to make server
|
|
|
4cd948 |
// unavailable until they get it right
|
|
|
4cd948 |
- if((ex instanceof java.security.GeneralSecurityException) ||
|
|
|
4cd948 |
- (ex instanceof java.lang.NumberFormatException))
|
|
|
4cd948 |
- throw new IOException(ex.toString());
|
|
|
4cd948 |
+ if ((ex instanceof java.security.GeneralSecurityException)
|
|
|
4cd948 |
+ || (ex instanceof java.lang.NumberFormatException))
|
|
|
4cd948 |
+ throw new IOException(ex.toString());
|
|
|
4cd948 |
}
|
|
|
4cd948 |
if (debugFile != null)
|
|
|
4cd948 |
debugFile.close();
|
|
|
4cd948 |
@@ -697,7 +854,7 @@
|
|
|
4cd948 |
public Socket acceptSocket(ServerSocket socket) throws IOException {
|
|
|
4cd948 |
SSLSocket asock = null;
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
- asock = (SSLSocket)socket.accept();
|
|
|
4cd948 |
+ asock = (SSLSocket) socket.accept();
|
|
|
4cd948 |
if (wantClientAuth || requireClientAuth) {
|
|
|
4cd948 |
asock.requestClientAuth(true);
|
|
|
4cd948 |
if (requireClientAuth == true) {
|
|
|
4cd948 |
@@ -707,14 +864,14 @@
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
- throw new SocketException("SSL handshake error "+e.toString());
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ throw new SocketException("SSL handshake error " + e.toString());
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
|
|
|
4cd948 |
return asock;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public void handshake(Socket sock) throws IOException {
|
|
|
4cd948 |
- //((SSLSocket)sock).forceHandshake();
|
|
|
4cd948 |
+ // ((SSLSocket)sock).forceHandshake();
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public ServerSocket createSocket(int port) throws IOException {
|
|
|
4cd948 |
@@ -721,33 +878,31 @@
|
|
|
4cd948 |
return createSocket(port, SSLServerSocket.DEFAULT_BACKLOG, null);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public ServerSocket createSocket(int port, int backlog)
|
|
|
4cd948 |
- throws IOException {
|
|
|
4cd948 |
+ public ServerSocket createSocket(int port, int backlog) throws IOException {
|
|
|
4cd948 |
return createSocket(port, backlog, null);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public ServerSocket createSocket(int port, int backlog,
|
|
|
4cd948 |
- InetAddress ifAddress) throws IOException {
|
|
|
4cd948 |
+ InetAddress ifAddress) throws IOException {
|
|
|
4cd948 |
return createSocket(port, backlog, ifAddress, true);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public ServerSocket createSocket(int port, int backlog,
|
|
|
4cd948 |
- InetAddress ifAddress, boolean reuseAddr) throws IOException {
|
|
|
4cd948 |
+ InetAddress ifAddress, boolean reuseAddr) throws IOException {
|
|
|
4cd948 |
if (!initialized)
|
|
|
4cd948 |
init();
|
|
|
4cd948 |
SSLServerSocket socket = null;
|
|
|
4cd948 |
- socket = (SSLServerSocket)(new SSLServerSocket(port, backlog,
|
|
|
4cd948 |
- ifAddress, null, reuseAddr));
|
|
|
4cd948 |
+ socket = (SSLServerSocket) (new SSLServerSocket(port, backlog,
|
|
|
4cd948 |
+ ifAddress, null, reuseAddr));
|
|
|
4cd948 |
initializeSocket(socket);
|
|
|
4cd948 |
- return (ServerSocket)socket;
|
|
|
4cd948 |
+ return (ServerSocket) socket;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
private void initializeSocket(SSLServerSocket s) {
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
/*
|
|
|
4cd948 |
- * Timeout's should not be enabled by default.
|
|
|
4cd948 |
- * Upper layers will call setSoTimeout() as needed.
|
|
|
4cd948 |
- * Zero means disable.
|
|
|
4cd948 |
+ * Timeout's should not be enabled by default. Upper layers will
|
|
|
4cd948 |
+ * call setSoTimeout() as needed. Zero means disable.
|
|
|
4cd948 |
*/
|
|
|
4cd948 |
s.setSoTimeout(0);
|
|
|
4cd948 |
if (wantClientAuth || requireClientAuth) {
|
|
|
4cd948 |
@@ -757,7 +912,7 @@
|
|
|
4cd948 |
} else {
|
|
|
4cd948 |
s.requireClientAuth(SSLSocket.SSL_REQUIRE_NEVER);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
- }
|
|
|
4cd948 |
+ }
|
|
|
4cd948 |
s.setServerCertNickname(serverCertNick);
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
}
|
|
|
4cd948 |
@@ -776,7 +931,8 @@
|
|
|
4cd948 |
return null;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public void configureSessionContext(javax.net.ssl.SSLSessionContext sslSessionContext) {
|
|
|
4cd948 |
+ public void configureSessionContext(
|
|
|
4cd948 |
+ javax.net.ssl.SSLSessionContext sslSessionContext) {
|
|
|
4cd948 |
return;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/JSSImplementation.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/JSSImplementation.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/JSSImplementation.java (revision 294)
|
|
|
4cd948 |
@@ -20,7 +20,7 @@
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
import java.net.Socket;
|
|
|
4cd948 |
-import java.io.*;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
import org.apache.tomcat.util.net.AbstractEndpoint;
|
|
|
4cd948 |
import org.apache.tomcat.util.net.SSLImplementation;
|
|
|
4cd948 |
import org.apache.tomcat.util.net.SSLSupport;
|
|
|
4cd948 |
@@ -27,14 +27,12 @@
|
|
|
4cd948 |
import org.apache.tomcat.util.net.SSLUtil;
|
|
|
4cd948 |
import org.apache.tomcat.util.net.ServerSocketFactory;
|
|
|
4cd948 |
|
|
|
4cd948 |
-public class JSSImplementation extends SSLImplementation
|
|
|
4cd948 |
-{
|
|
|
4cd948 |
- static final String JSSFactory =
|
|
|
4cd948 |
- "org.apache.tomcat.util.net.jss.JSSFactory";
|
|
|
4cd948 |
+public class JSSImplementation extends SSLImplementation {
|
|
|
4cd948 |
+ static final String JSSFactory = "org.apache.tomcat.util.net.jss.JSSFactory";
|
|
|
4cd948 |
static final String SSLSocketClass = "org.mozilla.jss.ssl.SSLSocket";
|
|
|
4cd948 |
|
|
|
4cd948 |
- static org.apache.commons.logging.Log logger =
|
|
|
4cd948 |
- org.apache.commons.logging.LogFactory.getLog(JSSImplementation.class);
|
|
|
4cd948 |
+ static org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory
|
|
|
4cd948 |
+ .getLog(JSSImplementation.class);
|
|
|
4cd948 |
|
|
|
4cd948 |
private JSSFactory factory = null;
|
|
|
4cd948 |
|
|
|
4cd948 |
@@ -43,9 +41,9 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
try {
|
|
|
4cd948 |
Class factcl = Class.forName(JSSFactory);
|
|
|
4cd948 |
- factory = (JSSFactory)factcl.newInstance();
|
|
|
4cd948 |
+ factory = (JSSFactory) factcl.newInstance();
|
|
|
4cd948 |
} catch (Exception e) {
|
|
|
4cd948 |
- if(logger.isDebugEnabled())
|
|
|
4cd948 |
+ if (logger.isDebugEnabled())
|
|
|
4cd948 |
logger.debug("Error getting factory: " + JSSFactory, e);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
@@ -54,8 +52,7 @@
|
|
|
4cd948 |
return "JSS";
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public ServerSocketFactory getServerSocketFactory(AbstractEndpoint endpoint)
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
+ public ServerSocketFactory getServerSocketFactory(AbstractEndpoint endpoint) {
|
|
|
4cd948 |
ServerSocketFactory ssf = factory.getSocketFactory(endpoint);
|
|
|
4cd948 |
return ssf;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
@@ -68,28 +65,28 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
public SSLSupport getSSLSupport(javax.net.ssl.SSLSession session) {
|
|
|
4cd948 |
/*
|
|
|
4cd948 |
- * The Tomcat 6.0.26 docs says:
|
|
|
4cd948 |
- * This method has been deprecated since it adds a JSSE dependency
|
|
|
4cd948 |
- * to this interface. It will be removed in versions after 6.0.x.
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
+ * The Tomcat 6.0.26 docs says: This method has been deprecated since it
|
|
|
4cd948 |
+ * adds a JSSE dependency to this interface. It will be removed in
|
|
|
4cd948 |
+ * versions after 6.0.x.
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
* But we have to provide a implementation of this method because it's
|
|
|
4cd948 |
* declared as abstract.
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
* Unfortunately there does not appear to be any way to get SSLSupport
|
|
|
4cd948 |
* information from a session with JSS. JSS looks up the information
|
|
|
4cd948 |
* based on a socket, not a session. This done in SSLSocket.c
|
|
|
4cd948 |
* Java_org_mozilla_jss_ssl_SSLSocket_getStatus().
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
* So while it would be nice to provide a working implmentation there
|
|
|
4cd948 |
* doesn't seem to be an easy way to do this. Given that this method is
|
|
|
4cd948 |
* already deprecated and there hasn't been any evidence of it being
|
|
|
4cd948 |
* called it therefore seems reasonable to just return null to satify
|
|
|
4cd948 |
* the compiler's demand for an implementation.
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
* Once this abstract method is removed from SSLImplementation in a
|
|
|
4cd948 |
* future release we can remove this stub.
|
|
|
4cd948 |
- *
|
|
|
4cd948 |
- * NOTE: This method has NOT yet been deprecated in Tomcat 7!
|
|
|
4cd948 |
+ *
|
|
|
4cd948 |
+ * NOTE: This method has NOT yet been deprecated in Tomcat 7!
|
|
|
4cd948 |
*/
|
|
|
4cd948 |
return null;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/PlainPasswordFile.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/PlainPasswordFile.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/PlainPasswordFile.java (revision 294)
|
|
|
4cd948 |
@@ -19,11 +19,13 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
+import java.io.FileInputStream;
|
|
|
4cd948 |
+import java.io.FileOutputStream;
|
|
|
4cd948 |
+import java.io.IOException;
|
|
|
4cd948 |
+import java.util.Enumeration;
|
|
|
4cd948 |
import java.util.Properties;
|
|
|
4cd948 |
-import java.io.*;
|
|
|
4cd948 |
-import java.util.*;
|
|
|
4cd948 |
|
|
|
4cd948 |
-public class PlainPasswordFile implements IPasswordStore{
|
|
|
4cd948 |
+public class PlainPasswordFile implements IPasswordStore {
|
|
|
4cd948 |
private String mPwdPath = "";
|
|
|
4cd948 |
private Properties mPwdStore;
|
|
|
4cd948 |
private static final String PASSWORD_WRITER_HEADER = "";
|
|
|
4cd948 |
@@ -31,24 +33,23 @@
|
|
|
4cd948 |
public PlainPasswordFile() {
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public void init(String pwdPath)
|
|
|
4cd948 |
- throws IOException
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
- mPwdStore = new Properties();
|
|
|
4cd948 |
- // initialize mPwdStore
|
|
|
4cd948 |
- mPwdPath = pwdPath;
|
|
|
4cd948 |
+ public void init(String pwdPath) throws IOException {
|
|
|
4cd948 |
+ mPwdStore = new Properties();
|
|
|
4cd948 |
+ // initialize mPwdStore
|
|
|
4cd948 |
+ mPwdPath = pwdPath;
|
|
|
4cd948 |
|
|
|
4cd948 |
- FileInputStream file = new FileInputStream(mPwdPath);
|
|
|
4cd948 |
- mPwdStore.load(file);
|
|
|
4cd948 |
+ FileInputStream file = new FileInputStream(mPwdPath);
|
|
|
4cd948 |
+ mPwdStore.load(file);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public String getPassword(String tag) {
|
|
|
4cd948 |
- return (String) mPwdStore.getProperty(tag);
|
|
|
4cd948 |
+ return (String) mPwdStore.getProperty(tag);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
// return an array of String-based tag
|
|
|
4cd948 |
- public Enumeration getTags() {
|
|
|
4cd948 |
- return mPwdStore.propertyNames();
|
|
|
4cd948 |
+ @SuppressWarnings("unchecked")
|
|
|
4cd948 |
+ public Enumeration<String> getTags() {
|
|
|
4cd948 |
+ return (Enumeration<String>) mPwdStore.propertyNames();
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public Object putPassword(String tag, String password) {
|
|
|
4cd948 |
@@ -55,9 +56,8 @@
|
|
|
4cd948 |
return mPwdStore.setProperty(tag, password);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
- public void commit()
|
|
|
4cd948 |
- throws IOException, ClassCastException, NullPointerException
|
|
|
4cd948 |
- {
|
|
|
4cd948 |
+ public void commit() throws IOException, ClassCastException,
|
|
|
4cd948 |
+ NullPointerException {
|
|
|
4cd948 |
FileOutputStream file = new FileOutputStream(mPwdPath);
|
|
|
4cd948 |
mPwdStore.store(file, PASSWORD_WRITER_HEADER);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/JSSFactory.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/JSSFactory.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/JSSFactory.java (revision 294)
|
|
|
4cd948 |
@@ -19,10 +19,13 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
-import org.mozilla.jss.ssl.*;
|
|
|
4cd948 |
-import org.apache.tomcat.util.net.*;
|
|
|
4cd948 |
-import java.net.*;
|
|
|
4cd948 |
+import java.net.Socket;
|
|
|
4cd948 |
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.AbstractEndpoint;
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.SSLSupport;
|
|
|
4cd948 |
+import org.apache.tomcat.util.net.ServerSocketFactory;
|
|
|
4cd948 |
+import org.mozilla.jss.ssl.SSLSocket;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
class JSSFactory implements IJSSFactory {
|
|
|
4cd948 |
JSSFactory() {
|
|
|
4cd948 |
}
|
|
|
4cd948 |
@@ -32,6 +35,6 @@
|
|
|
4cd948 |
}
|
|
|
4cd948 |
|
|
|
4cd948 |
public SSLSupport getSSLSupport(Socket socket) {
|
|
|
4cd948 |
- return new JSSSupport((SSLSocket)socket);
|
|
|
4cd948 |
+ return new JSSSupport((SSLSocket) socket);
|
|
|
4cd948 |
}
|
|
|
4cd948 |
}
|
|
|
4cd948 |
Index: src/org/apache/tomcat/util/net/jss/IPasswordStore.java
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- src/org/apache/tomcat/util/net/jss/IPasswordStore.java (revision 292)
|
|
|
4cd948 |
+++ src/org/apache/tomcat/util/net/jss/IPasswordStore.java (revision 294)
|
|
|
4cd948 |
@@ -19,14 +19,18 @@
|
|
|
4cd948 |
|
|
|
4cd948 |
package org.apache.tomcat.util.net.jss;
|
|
|
4cd948 |
|
|
|
4cd948 |
-import java.util.*;
|
|
|
4cd948 |
-import java.io.*;
|
|
|
4cd948 |
+import java.io.IOException;
|
|
|
4cd948 |
+import java.util.Enumeration;
|
|
|
4cd948 |
|
|
|
4cd948 |
public interface IPasswordStore {
|
|
|
4cd948 |
public void init(String pwdPath) throws IOException;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
public String getPassword(String tag);
|
|
|
4cd948 |
- public Enumeration getTags();
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ public Enumeration<String> getTags();
|
|
|
4cd948 |
+
|
|
|
4cd948 |
public Object putPassword(String tag, String password);
|
|
|
4cd948 |
- public void commit()
|
|
|
4cd948 |
- throws IOException, ClassCastException, NullPointerException;
|
|
|
4cd948 |
+
|
|
|
4cd948 |
+ public void commit() throws IOException, ClassCastException,
|
|
|
4cd948 |
+ NullPointerException;
|
|
|
4cd948 |
}
|
|
|
4cd948 |
Index: .settings/org.eclipse.jdt.core.prefs
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- .settings/org.eclipse.jdt.core.prefs (revision 0)
|
|
|
4cd948 |
+++ .settings/org.eclipse.jdt.core.prefs (revision 294)
|
|
|
4cd948 |
@@ -0,0 +1,282 @@
|
|
|
4cd948 |
+eclipse.preferences.version=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_header=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_html=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.line_length=120
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.compact_else_if=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.continuation_indentation=2
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.indentation.size=8
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.lineSplit=120
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.tabulation.char=space
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.tabulation.size=4
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
|
|
|
4cd948 |
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
|
|
4cd948 |
Index: .settings/org.eclipse.jdt.ui.prefs
|
|
|
4cd948 |
===================================================================
|
|
|
4cd948 |
--- .settings/org.eclipse.jdt.ui.prefs (revision 0)
|
|
|
4cd948 |
+++ .settings/org.eclipse.jdt.ui.prefs (revision 294)
|
|
|
4cd948 |
@@ -0,0 +1,56 @@
|
|
|
4cd948 |
+eclipse.preferences.version=1
|
|
|
4cd948 |
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
|
|
|
4cd948 |
+formatter_profile=_PKI Project Profile
|
|
|
4cd948 |
+formatter_settings_version=12
|
|
|
4cd948 |
+sp_cleanup.add_default_serial_version_id=true
|
|
|
4cd948 |
+sp_cleanup.add_generated_serial_version_id=false
|
|
|
4cd948 |
+sp_cleanup.add_missing_annotations=false
|
|
|
4cd948 |
+sp_cleanup.add_missing_deprecated_annotations=true
|
|
|
4cd948 |
+sp_cleanup.add_missing_methods=false
|
|
|
4cd948 |
+sp_cleanup.add_missing_nls_tags=false
|
|
|
4cd948 |
+sp_cleanup.add_missing_override_annotations=true
|
|
|
4cd948 |
+sp_cleanup.add_missing_override_annotations_interface_methods=true
|
|
|
4cd948 |
+sp_cleanup.add_serial_version_id=false
|
|
|
4cd948 |
+sp_cleanup.always_use_blocks=true
|
|
|
4cd948 |
+sp_cleanup.always_use_parentheses_in_expressions=false
|
|
|
4cd948 |
+sp_cleanup.always_use_this_for_non_static_field_access=false
|
|
|
4cd948 |
+sp_cleanup.always_use_this_for_non_static_method_access=false
|
|
|
4cd948 |
+sp_cleanup.convert_to_enhanced_for_loop=false
|
|
|
4cd948 |
+sp_cleanup.correct_indentation=false
|
|
|
4cd948 |
+sp_cleanup.format_source_code=false
|
|
|
4cd948 |
+sp_cleanup.format_source_code_changes_only=false
|
|
|
4cd948 |
+sp_cleanup.make_local_variable_final=false
|
|
|
4cd948 |
+sp_cleanup.make_parameters_final=false
|
|
|
4cd948 |
+sp_cleanup.make_private_fields_final=true
|
|
|
4cd948 |
+sp_cleanup.make_type_abstract_if_missing_method=false
|
|
|
4cd948 |
+sp_cleanup.make_variable_declarations_final=false
|
|
|
4cd948 |
+sp_cleanup.never_use_blocks=false
|
|
|
4cd948 |
+sp_cleanup.never_use_parentheses_in_expressions=true
|
|
|
4cd948 |
+sp_cleanup.on_save_use_additional_actions=true
|
|
|
4cd948 |
+sp_cleanup.organize_imports=true
|
|
|
4cd948 |
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
|
|
|
4cd948 |
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
|
|
4cd948 |
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
|
|
4cd948 |
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
|
|
|
4cd948 |
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
|
|
|
4cd948 |
+sp_cleanup.remove_private_constructors=true
|
|
|
4cd948 |
+sp_cleanup.remove_trailing_whitespaces=true
|
|
|
4cd948 |
+sp_cleanup.remove_trailing_whitespaces_all=true
|
|
|
4cd948 |
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
|
|
|
4cd948 |
+sp_cleanup.remove_unnecessary_casts=true
|
|
|
4cd948 |
+sp_cleanup.remove_unnecessary_nls_tags=false
|
|
|
4cd948 |
+sp_cleanup.remove_unused_imports=true
|
|
|
4cd948 |
+sp_cleanup.remove_unused_local_variables=false
|
|
|
4cd948 |
+sp_cleanup.remove_unused_private_fields=true
|
|
|
4cd948 |
+sp_cleanup.remove_unused_private_members=false
|
|
|
4cd948 |
+sp_cleanup.remove_unused_private_methods=true
|
|
|
4cd948 |
+sp_cleanup.remove_unused_private_types=true
|
|
|
4cd948 |
+sp_cleanup.sort_members=false
|
|
|
4cd948 |
+sp_cleanup.sort_members_all=false
|
|
|
4cd948 |
+sp_cleanup.use_blocks=false
|
|
|
4cd948 |
+sp_cleanup.use_blocks_only_for_return_and_throw=false
|
|
|
4cd948 |
+sp_cleanup.use_parentheses_in_expressions=false
|
|
|
4cd948 |
+sp_cleanup.use_this_for_non_static_field_access=false
|
|
|
4cd948 |
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
|
|
4cd948 |
+sp_cleanup.use_this_for_non_static_method_access=false
|
|
|
4cd948 |
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|