summaryrefslogtreecommitdiff
path: root/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java')
-rw-r--r--eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java39
1 files changed, 38 insertions, 1 deletions
diff --git a/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java b/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java
index 623e9d2c..fc3fa19d 100644
--- a/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java
+++ b/eaaf_core_utils/src/main/java/at/gv/egiz/eaaf/core/impl/credential/EaafKeyStoreFactory.java
@@ -5,6 +5,9 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.GeneralSecurityException;
import java.security.Key;
import java.security.KeyStore;
import java.security.KeyStore.LoadStoreParameter;
@@ -39,6 +42,7 @@ import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.core.exceptions.EaafFactoryException;
import at.gv.egiz.eaaf.core.impl.credential.KeyStoreConfiguration.KeyStoreType;
import at.gv.egiz.eaaf.core.impl.credential.SymmetricKeyConfiguration.SymmetricKeyType;
+import at.gv.egiz.eaaf.core.impl.credential.inline.InlineKeyStoreParser;
import at.gv.egiz.eaaf.core.impl.data.Pair;
import at.gv.egiz.eaaf.core.impl.utils.FileUtils;
import at.gv.egiz.eaaf.core.impl.utils.KeyStoreUtils;
@@ -64,6 +68,9 @@ public class EaafKeyStoreFactory {
public static final String ERRORCODE_07 = "internal.keystore.07";
public static final String ERRORCODE_10 = "internal.keystore.10";
public static final String ERRORCODE_11 = "internal.keystore.11";
+ public static final String ERRORCODE_12 = "internal.keystore.12";
+ public static final String ERRORCODE_13 = "internal.keystore.13";
+ public static final String ERRORCODE_14 = "internal.keystore.14";
public static final String ERRORCODE_KEY_00 = "internal.key.00";
@@ -142,6 +149,9 @@ public class EaafKeyStoreFactory {
|| KeyStoreType.JKS.equals(config.getKeyStoreType())) {
return getKeyStoreFromFileSystem(config);
+ } else if (KeyStoreType.INLINE.equals(config.getKeyStoreType())) {
+ return getKeyStoreFromInlineConfiguration(config);
+
} else if (KeyStoreType.HSMFACADE.equals(config.getKeyStoreType())) {
if (isHsmFacadeInitialized) {
return getKeyStoreFromHsmFacade(config);
@@ -339,6 +349,33 @@ public class EaafKeyStoreFactory {
}
@Nonnull
+ private Pair<KeyStore, Provider> getKeyStoreFromInlineConfiguration(KeyStoreConfiguration config)
+ throws EaafConfigurationException {
+ try {
+ log.debug("Loading keystore from in-line configuration URL ... ");
+ return Pair.newInstance(
+ InlineKeyStoreParser.buildKeyStore(
+ new URL(null,
+ config.getSoftKeyStoreFilePath(),
+ new InlineKeyStoreParser()),
+ resourceLoader,
+ basicConfig.getConfigurationRootDirectory()),
+ null);
+
+ } catch (MalformedURLException e) {
+ log.error("Inline KeyStore URL has no valid form.", e);
+ throw new EaafConfigurationException(ERRORCODE_13,
+ new Object[] { config.getSoftKeyStoreFilePath(), e.getMessage() }, e);
+
+ } catch (IOException | GeneralSecurityException e) {
+ log.error("Inline KeyStore initialization FAILED with an generic error.", e);
+ throw new EaafConfigurationException(ERRORCODE_13, new Object[] { e.getMessage() }, e);
+
+ }
+
+ }
+
+ @Nonnull
private Pair<KeyStore, Provider> getKeyStoreFromFileSystem(KeyStoreConfiguration config)
throws EaafConfigurationException, EaafFactoryException {
try {
@@ -384,7 +421,7 @@ public class EaafKeyStoreFactory {
} catch (final Exception e) {
log.error("Software KeyStore initialization FAILED with an generic error.", e);
- throw new EaafConfigurationException(ERRORCODE_03, new Object[] { e.getMessage() }, e);
+ throw new EaafConfigurationException(ERRORCODE_12, new Object[] { e.getMessage() }, e);
}
}