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