aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/security/KeyStores.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/security/KeyStores.java')
-rw-r--r--netx/net/sourceforge/jnlp/security/KeyStores.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/security/KeyStores.java b/netx/net/sourceforge/jnlp/security/KeyStores.java
index 94ea56e..05bc150 100644
--- a/netx/net/sourceforge/jnlp/security/KeyStores.java
+++ b/netx/net/sourceforge/jnlp/security/KeyStores.java
@@ -41,6 +41,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.security.AllPermission;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
@@ -111,6 +112,11 @@ public final class KeyStores {
* @return a KeyStore containing certificates from the appropriate
*/
public static final KeyStore getKeyStore(Level level, Type type, boolean create) {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ sm.checkPermission(new AllPermission());
+ }
+
String location = getKeyStoreLocation(level, type);
KeyStore ks = null;
try {
@@ -189,6 +195,29 @@ public final class KeyStores {
}
/**
+ * Returns KeyStores containing trusted client certificates
+ *
+ * @return an array of KeyStore objects that can be used to check client
+ * authentication certificates
+ */
+ public static KeyStore[] getClientKeyStores() {
+ List<KeyStore> result = new ArrayList<KeyStore>();
+ KeyStore ks = null;
+
+ ks = getKeyStore(Level.SYSTEM, Type.CLIENT_CERTS);
+ if (ks != null) {
+ result.add(ks);
+ }
+
+ ks = getKeyStore(Level.USER, Type.CLIENT_CERTS);
+ if (ks != null) {
+ result.add(ks);
+ }
+
+ return result.toArray(new KeyStore[result.size()]);
+ }
+
+ /**
* Returns the location of a KeyStore corresponding to the given level and type.
* @param level
* @param type
@@ -336,4 +365,5 @@ public final class KeyStores {
return ks;
}
+
}