|
|
045ef6 |
# HG changeset patch
|
|
|
045ef6 |
# User andrew
|
|
|
045ef6 |
# Date 1459487045 -3600
|
|
|
045ef6 |
# Fri Apr 01 06:04:05 2016 +0100
|
|
|
045ef6 |
# Node ID 3334efeacd8327a14b7d2f392f4546e3c29c594b
|
|
|
045ef6 |
# Parent 6b81fd2227d14226f2121f2d51b464536925686e
|
|
|
045ef6 |
PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
|
|
|
1d78cc |
PR3575: System cacerts database handling should not affect jssecacerts
|
|
|
045ef6 |
|
|
|
1d78cc |
diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
|
|
1d78cc |
--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
|
|
1d78cc |
+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
|
|
|
1d78cc |
@@ -72,7 +72,7 @@
|
|
|
1d78cc |
* The preference of the default trusted KeyStore is:
|
|
|
1d78cc |
* javax.net.ssl.trustStore
|
|
|
1d78cc |
* jssecacerts
|
|
|
1d78cc |
- * cacerts
|
|
|
1d78cc |
+ * cacerts (system and local)
|
|
|
1d78cc |
*/
|
|
|
1d78cc |
private static final class TrustStoreDescriptor {
|
|
|
1d78cc |
private static final String fileSep = File.separator;
|
|
|
1d78cc |
@@ -83,6 +83,10 @@
|
|
|
1d78cc |
defaultStorePath + fileSep + "cacerts";
|
|
|
1d78cc |
private static final String jsseDefaultStore =
|
|
|
1d78cc |
defaultStorePath + fileSep + "jssecacerts";
|
|
|
1d78cc |
+ /* Check system cacerts DB: /etc/pki/java/cacerts */
|
|
|
1d78cc |
+ private static final String systemStore =
|
|
|
1d78cc |
+ fileSep + "etc" + fileSep + "pki" +
|
|
|
1d78cc |
+ fileSep + "java" + fileSep + "cacerts";
|
|
|
045ef6 |
|
|
|
1d78cc |
// the trust store name
|
|
|
1d78cc |
private final String storeName;
|
|
|
1d78cc |
@@ -146,7 +150,8 @@
|
|
|
1d78cc |
long temporaryTime = 0L;
|
|
|
1d78cc |
if (!"NONE".equals(storePropName)) {
|
|
|
1d78cc |
String[] fileNames =
|
|
|
1d78cc |
- new String[] {storePropName, defaultStore};
|
|
|
1d78cc |
+ new String[] {storePropName,
|
|
|
1d78cc |
+ systemStore, defaultStore};
|
|
|
1d78cc |
for (String fileName : fileNames) {
|
|
|
1d78cc |
File f = new File(fileName);
|
|
|
1d78cc |
if (f.isFile() && f.canRead()) {
|
|
|
1d78cc |
diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
|
|
1d78cc |
--- openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
|
|
045ef6 |
+++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
|
|
|
1d78cc |
@@ -108,9 +108,14 @@
|
|
|
045ef6 |
throws Exception
|
|
|
045ef6 |
{
|
|
|
045ef6 |
String sep = File.separator;
|
|
|
045ef6 |
- File file = new File(System.getProperty("java.home") + sep
|
|
|
045ef6 |
- + "lib" + sep + "security" + sep
|
|
|
045ef6 |
- + "cacerts");
|
|
|
045ef6 |
+ /* Check system cacerts DB first; /etc/pki/java/cacerts */
|
|
|
045ef6 |
+ File file = new File(sep + "etc" + sep + "pki" + sep
|
|
|
045ef6 |
+ + "java" + sep + "cacerts");
|
|
|
045ef6 |
+ if (!file.exists()) {
|
|
|
045ef6 |
+ file = new File(System.getProperty("java.home") + sep
|
|
|
045ef6 |
+ + "lib" + sep + "security" + sep
|
|
|
045ef6 |
+ + "cacerts");
|
|
|
045ef6 |
+ }
|
|
|
045ef6 |
if (!file.exists()) {
|
|
|
045ef6 |
return null;
|
|
|
045ef6 |
}
|