diff options
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.java | 82 |
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 |