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 | 100 |
1 files changed, 76 insertions, 24 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 d85d61bc7..6f1af9842 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 @@ -38,7 +38,10 @@ import org.hibernate.cfg.Configuration; import org.w3c.dom.Element; import org.w3c.dom.Node; -import at.gv.egovernment.moa.id.commons.db.HibernateUtil; +import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; +import at.gv.egovernment.moa.id.commons.db.ConfigurationUtil; +import at.gv.egovernment.moa.id.commons.db.MOASessionUtil; +import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore; import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore; import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore; @@ -276,37 +279,69 @@ public class AuthConfigurationProvider extends ConfigurationProvider { } catch (IOException e) { } } - try { - // determine the directory of the root config file - rootConfigFileDir = new File(fileName).getParent(); - try { - rootConfigFileDir = new File(rootConfigFileDir).toURL().toString(); - } catch (MalformedURLException t) { - throw new ConfigurationException("config.03", null, t); - } - + try { + //Initial Hibernate Framework - //TODO: Full update to new MOA-ID configuration!!! Logger.trace("Initializing Hibernate framework."); - + + //Load MOAID-2.0 properties file String propertiesFileLocation = System.getProperty("moa.id.config"); MiscUtil.assertNotNull(propertiesFileLocation, "propertiesFileName"); File propertiesFile = new File(propertiesFileLocation); FileInputStream fis; Properties props = new Properties(); + + //TODO: determine from new config file path + // determine the directory of the root config file + rootConfigFileDir = new File(fileName).getParent(); + + try { + rootConfigFileDir = new File(rootConfigFileDir).toURL().toString(); + + } catch (MalformedURLException t) { + throw new ConfigurationException("config.03", null, t); + } + try { fis = new FileInputStream(propertiesFile); props.load(fis); + + // read MOAID Session Hibernate properties + Properties moaSessionProp = new Properties(); + for (Object key : props.keySet()) { + String propPrefix = "moasession."; + if (key.toString().startsWith(propPrefix)) { + String propertyName = key.toString().substring(propPrefix.length()); + moaSessionProp.put(propertyName, props.get(key.toString())); + } + } + + // read Config Hibernate properties + Properties configProp = new Properties(); + for (Object key : props.keySet()) { + String propPrefix = "configuration."; + if (key.toString().startsWith(propPrefix)) { + String propertyName = key.toString().substring(propPrefix.length()); + configProp.put(propertyName, props.get(key.toString())); + } + } + // initialize hibernate synchronized (AuthConfigurationProvider.class) { - Configuration hibernateConfig = new Configuration(); - hibernateConfig.addAnnotatedClass(AssertionStore.class); - hibernateConfig.addAnnotatedClass(AuthenticatedSessionStore.class); - hibernateConfig.addAnnotatedClass(OASessionStore.class); - hibernateConfig.addAnnotatedClass(OldSSOSessionIDStore.class); - hibernateConfig.addProperties(props); - HibernateUtil.initHibernate(hibernateConfig, props); + + //Initial config Database + ConfigurationUtil.initHibernate(configProp); + + //initial MOAID Session Database + Configuration config = new Configuration(); + config.addAnnotatedClass(AssertionStore.class); + config.addAnnotatedClass(AuthenticatedSessionStore.class); + config.addAnnotatedClass(OASessionStore.class); + config.addAnnotatedClass(OldSSOSessionIDStore.class); + config.addProperties(moaSessionProp); + MOASessionUtil.initHibernate(config, moaSessionProp); + } Logger.trace("Hibernate initialization finished."); @@ -327,8 +362,19 @@ public class AuthConfigurationProvider extends ConfigurationProvider { Logger.debug("OpenSAML successfully initialized"); + //TODO: load from Legacy if legacy.xml.configuration != null +// MOAIDConfiguration moaconfig = BuildFromLegacyConfig.build(fileName, rootConfigFileDir); +// ConfigurationUtil.save(moaconfig); + + //TODO: Save MOAID 2.0 config to XML +// 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("D:/moa2.0_config.xml"); +// m.marshal(moaconfig, test); + - // build the internal datastructures +// // build the internal datastructures builder = new ConfigurationBuilder(configElem, rootConfigFileDir); bKUConnectionParameter = builder.buildAuthBKUConnectionParameter(); bKUSelectable = (bKUConnectionParameter!=null); @@ -399,14 +445,17 @@ public class AuthConfigurationProvider extends ConfigurationProvider { // } // return transformsInfos; // } + + /** * Return a string array with all filenames leading * to the Transforms Information for the Security Layer * @return String[] of filenames to the Security Layer Transforms Information */ - public String[] getTransformsInfoFileNames() { - return transformsInfoFileNames; - } + //TODO: only for testing +// public String[] getTransformsInfoFileNames() { +// return transformsInfoFileNames; +// } /** * Build an array of the OnlineApplication Parameters containing information @@ -428,7 +477,10 @@ public class AuthConfigurationProvider extends ConfigurationProvider { * if none is applicable */ public OAAuthParameter getOnlineApplicationParameter(String oaURL) { - OAAuthParameter[] oaParams = getOnlineApplicationParameters(); + +// return ConfigurationDBUtils.getOnlineApplication(oaURL); + + OAAuthParameter[] oaParams = getOnlineApplicationParameters(); for (int i = 0; i < oaParams.length; i++) { OAAuthParameter oaParam = oaParams[i]; if (oaURL.indexOf(oaParam.getPublicURLPrefix()) == 0) |