Alex Kashchenko f7e4c1a
# HG changeset patch
Alex Kashchenko f7e4c1a
# User andrew
Alex Kashchenko f7e4c1a
# Date 1459487045 -3600
Alex Kashchenko f7e4c1a
#      Fri Apr 01 06:04:05 2016 +0100
Alex Kashchenko f7e4c1a
# Node ID 3334efeacd8327a14b7d2f392f4546e3c29c594b
Alex Kashchenko f7e4c1a
# Parent  6b81fd2227d14226f2121f2d51b464536925686e
Alex Kashchenko f7e4c1a
PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Alex Kashchenko f7e4c1a
Alex Kashchenko f7e4c1a
diff --git a/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java b/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
Alex Kashchenko f7e4c1a
--- openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
Alex Kashchenko f7e4c1a
+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
Alex Kashchenko f7e4c1a
@@ -174,15 +174,20 @@
Alex Kashchenko f7e4c1a
                     storeFile = new File(storeFileName);
Alex Kashchenko f7e4c1a
                     fis = getFileInputStream(storeFile);
Alex Kashchenko f7e4c1a
                 } else {
Alex Kashchenko f7e4c1a
-                    String javaHome = props.get("javaHome");
Alex Kashchenko f7e4c1a
-                    storeFile = new File(javaHome + sep + "lib" + sep
Alex Kashchenko f7e4c1a
-                                                    + "security" + sep +
Alex Kashchenko f7e4c1a
-                                                    "jssecacerts");
Alex Kashchenko f7e4c1a
+                    /* Check system cacerts DB first; /etc/pki/java/cacerts */
Alex Kashchenko f7e4c1a
+                    storeFile = new File(sep + "etc" + sep + "pki" + sep
Alex Kashchenko f7e4c1a
+                                         + "java" + sep + "cacerts");
Alex Kashchenko f7e4c1a
                     if ((fis = getFileInputStream(storeFile)) == null) {
Alex Kashchenko f7e4c1a
+                        String javaHome = props.get("javaHome");
Alex Kashchenko f7e4c1a
                         storeFile = new File(javaHome + sep + "lib" + sep
Alex Kashchenko f7e4c1a
-                                                    + "security" + sep +
Alex Kashchenko f7e4c1a
-                                                    "cacerts");
Alex Kashchenko f7e4c1a
-                        fis = getFileInputStream(storeFile);
Alex Kashchenko f7e4c1a
+                                             + "security" + sep +
Alex Kashchenko f7e4c1a
+                                             "jssecacerts");
Alex Kashchenko f7e4c1a
+                        if ((fis = getFileInputStream(storeFile)) == null) {
Alex Kashchenko f7e4c1a
+                            storeFile = new File(javaHome + sep + "lib" + sep
Alex Kashchenko f7e4c1a
+                                                 + "security" + sep +
Alex Kashchenko f7e4c1a
+                                                 "cacerts");
Alex Kashchenko f7e4c1a
+                            fis = getFileInputStream(storeFile);
Alex Kashchenko f7e4c1a
+                        }
Alex Kashchenko f7e4c1a
                     }
Alex Kashchenko f7e4c1a
                 }
Alex Kashchenko f7e4c1a
 
Alex Kashchenko f7e4c1a
diff --git a/src/share/classes/sun/security/tools/KeyStoreUtil.java b/src/share/classes/sun/security/tools/KeyStoreUtil.java
Alex Kashchenko f7e4c1a
--- openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
Alex Kashchenko f7e4c1a
+++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
Alex Kashchenko f7e4c1a
@@ -87,9 +87,14 @@
Alex Kashchenko f7e4c1a
         throws Exception
Alex Kashchenko f7e4c1a
     {
Alex Kashchenko f7e4c1a
         String sep = File.separator;
Alex Kashchenko f7e4c1a
-        File file = new File(System.getProperty("java.home") + sep
Alex Kashchenko f7e4c1a
-                             + "lib" + sep + "security" + sep
Alex Kashchenko f7e4c1a
-                             + "cacerts");
Alex Kashchenko f7e4c1a
+        /* Check system cacerts DB first; /etc/pki/java/cacerts */
Alex Kashchenko f7e4c1a
+        File file = new File(sep + "etc" + sep + "pki" + sep
Alex Kashchenko f7e4c1a
+                             + "java" + sep + "cacerts");
Alex Kashchenko f7e4c1a
+        if (!file.exists()) {
Alex Kashchenko f7e4c1a
+            file = new File(System.getProperty("java.home") + sep
Alex Kashchenko f7e4c1a
+                            + "lib" + sep + "security" + sep
Alex Kashchenko f7e4c1a
+                            + "cacerts");
Alex Kashchenko f7e4c1a
+        }
Alex Kashchenko f7e4c1a
         if (!file.exists()) {
Alex Kashchenko f7e4c1a
             return null;
Alex Kashchenko f7e4c1a
         }