aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java82
1 files changed, 67 insertions, 15 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
index 713fd538e..ffcb85044 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
@@ -24,6 +24,7 @@
package at.gv.egovernment.moa.id.config.auth;
+import iaik.security.cipher.AESKeyGenerator;
import iaik.util.logging.Log;
import java.io.File;
@@ -31,11 +32,16 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
@@ -56,6 +62,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;
import at.gv.egovernment.moa.id.commons.db.dao.config.MOASP;
import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;
import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineMandates;
+import at.gv.egovernment.moa.id.commons.db.dao.config.PVP2;
import at.gv.egovernment.moa.id.commons.db.dao.config.Protocols;
import at.gv.egovernment.moa.id.commons.db.dao.config.SLRequestTemplates;
import at.gv.egovernment.moa.id.commons.db.dao.config.SSO;
@@ -152,7 +159,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
private static Properties props;
private static STORKConfig storkconfig;
-
+
/**
* Return the single instance of configuration data.
*
@@ -288,6 +295,8 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
String legacyconfig = props.getProperty("configuration.xml.legacy");
String xmlconfig = props.getProperty("configuration.xml");
+ String xmlconfigout = props.getProperty("configuration.xml.out");
+
//check if XML config should be used
if (MiscUtil.isNotEmpty(legacyconfig) || MiscUtil.isNotEmpty(xmlconfig)) {
@@ -301,23 +310,14 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
if (MiscUtil.isNotEmpty(legacyconfig)) {
Logger.warn("WARNING! MOA-ID 2.0 is started with legacy configuration. This setup is not recommended!");
- MOAIDConfiguration moaconfig = BuildFromLegacyConfig.build(legacyconfig, rootConfigFileDir);
+ MOAIDConfiguration moaconfig = BuildFromLegacyConfig.build(legacyconfig, rootConfigFileDir, props);
ConfigurationDBUtils.save(moaconfig);
Logger.info("Legacy Configuration load is completed.");
- //TODO: only for Testing!!!
- if (MiscUtil.isNotEmpty(xmlconfig)) {
- Logger.info("Write MOA-ID 2.x xml config into " + xmlconfig);
- JAXBContext jc = JAXBContext.newInstance("at.gv.egovernment.moa.id.commons.db.dao.config");
- Marshaller m = jc.createMarshaller();
- m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
- File test = new File(xmlconfig);
- m.marshal(moaconfig, test);
-
- }
+
}
- //load legacy config if it is configured
+ //load MOA-ID 2.x config from XML
if (MiscUtil.isNotEmpty(xmlconfig)) {
Logger.warn("Load configuration from MOA-ID 2.x XML configuration");
@@ -330,7 +330,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
ConfigurationDBUtils.saveOrUpdate(moaconfig);
} catch (Exception e) {
- Log.err("MOA-ID XML configuration can not be loaded from File.");
+ Logger.warn("MOA-ID XML configuration can not be loaded from File.", e);
throw new ConfigurationException("config.02", null);
}
Logger.info("XML Configuration load is completed.");
@@ -341,6 +341,17 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
Logger.info("MOA-ID 2.0 is loaded.");
+ //TODO: only for Testing!!!
+ if (MiscUtil.isNotEmpty(xmlconfigout)) {
+ Logger.info("Write MOA-ID 2.x xml config into " + xmlconfig);
+ JAXBContext jc = JAXBContext.newInstance("at.gv.egovernment.moa.id.commons.db.dao.config");
+ Marshaller m = jc.createMarshaller();
+ m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ File test = new File(xmlconfigout);
+ m.marshal(moaidconfig, test);
+
+ }
+
//build STORK Config
AuthComponentGeneral authgeneral = getAuthComponentGeneral();
ForeignIdentities foreign = authgeneral.getForeignIdentities();
@@ -348,7 +359,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
Logger.warn("Error in MOA-ID Configuration. No STORK configuration found.");
throw new ConfigurationException("config.02", null);
}
- storkconfig = new STORKConfig(foreign.getSTORK(), props);
+ storkconfig = new STORKConfig(foreign.getSTORK(), props, rootConfigFileDir);
//load Chaining modes
@@ -383,6 +394,37 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
}
}
+
+ public Properties getGeneralPVP2ProperiesConfig() {
+ Properties configProp = new Properties();
+ for (Object key : props.keySet()) {
+ String propPrefix = "protocols.pvp2.";
+ if (key.toString().startsWith(propPrefix)) {
+ String propertyName = key.toString().substring(propPrefix.length());
+ configProp.put(propertyName, props.get(key.toString()));
+ }
+ }
+ return configProp;
+ }
+
+
+ public PVP2 getGeneralPVP2DBConfig() {
+
+ try {
+ AuthComponentGeneral auth = getAuthComponentGeneral();
+ Protocols protocols = auth.getProtocols();
+ if (protocols != null) {
+ return protocols.getPVP2();
+ }
+ Logger.warn("Error in MOA-ID Configuration. No general Protcol configuration found.");
+ return null;
+
+ } catch (ConfigurationException e) {
+ Logger.warn("Error in MOA-ID Configuration. No general AuthComponent configuration found.");
+ return null;
+ }
+ }
+
public TimeOuts getTimeOuts() throws ConfigurationException {
AuthComponentGeneral auth = getAuthComponentGeneral();
@@ -708,6 +750,16 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
return new String();
}
+ public String getMOASessionEncryptionKey() {
+
+ String prop = props.getProperty("configuration.moasession.key");
+
+ if (MiscUtil.isEmpty(prop))
+ return null;
+ else
+ return prop;
+ }
+
/**
* Retruns the STORK Configuration
* @return STORK Configuration