aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2013-07-16 14:05:53 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2013-07-16 14:05:53 +0200
commit5c345b6a0cd34a8c853aa274b081e70589b44da3 (patch)
treec7b97b8457f14bbd745301fbcffde5a32657f811 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
parentf0ce9aa935c948693bfabf2bdb598ec9df40471d (diff)
downloadmoa-id-spss-5c345b6a0cd34a8c853aa274b081e70589b44da3.tar.gz
moa-id-spss-5c345b6a0cd34a8c853aa274b081e70589b44da3.tar.bz2
moa-id-spss-5c345b6a0cd34a8c853aa274b081e70589b44da3.zip
create DB Config and legacy config parser
Split MOASession database from config database
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.java100
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)