aboutsummaryrefslogtreecommitdiff
path: root/id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java')
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java42
1 files changed, 38 insertions, 4 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java b/id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
index e3c869d53..2e133130c 100644
--- a/id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
+++ b/id.server/src/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
@@ -1,10 +1,11 @@
package at.gv.egovernment.moa.id.config.auth;
import java.io.BufferedInputStream;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-
+import java.net.MalformedURLException;
import org.w3c.dom.Element;
import at.gv.egovernment.moa.id.config.ConfigurationBuilder;
@@ -59,6 +60,20 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
*/
public static final String BKU_SELECTION_TYPE_HTMLSELECT =
"HTMLSelect";
+
+ /**
+ * The name of the generic configuration property allowing https connection to
+ * the user frontend servlets ("StartAuthentication" and "SelectBKU" servlets)
+ */
+ public static final String FRONTEND_SERVLETS_ENABLE_HTTP_CONNECTION_PROPERTY =
+ "FrontendServlets.EnableHTTPConnection";
+
+ /**
+ * The name of the generic configuration property allowing to set a individual
+ * DATA URL used to communicate with the BKU (SecurityLayer)
+ */
+ public static final String INDIVIDUAL_DATA_URL_PREFIX =
+ "FrontendServlets.DataURLPrefix";
/** Singleton instance. <code>null</code>, if none has been created. */
private static AuthConfigurationProvider instance;
@@ -67,6 +82,11 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
// configuration data
//
+ /**
+ * main configuration file directory name used to configure MOA-ID
+ */
+ private String rootConfigFileDir;
+
/**
* configuration files containing transformations for rendering in the
* secure viewer of the security layer implementation;
@@ -172,7 +192,7 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
InputStream stream = null;
Element configElem;
ConfigurationBuilder builder;
-
+
try {
// load the main config file
stream = new BufferedInputStream(new FileInputStream(fileName));
@@ -189,8 +209,16 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
}
}
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);
+ }
+
// build the internal datastructures
- builder = new ConfigurationBuilder(configElem);
+ builder = new ConfigurationBuilder(configElem, rootConfigFileDir);
bKUConnectionParameter = builder.buildAuthBKUConnectionParameter();
bKUSelectable = (bKUConnectionParameter!=null);
bKUSelectionType = builder.buildAuthBKUSelectionType();
@@ -205,7 +233,9 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
identityLinkX509SubjectNames = builder.getIdentityLink_X509SubjectNames();
defaultChainingMode = builder.getDefaultChainingMode();
chainingModes = builder.buildChainingModes();
- trustedCACertificates = builder.getTrustedCACertificates(); }
+ trustedCACertificates = builder.getTrustedCACertificates();
+ trustedCACertificates = FileUtils.makeAbsoluteURL(trustedCACertificates, rootConfigFileDir); }
+
catch (Throwable t) {
throw new ConfigurationException("config.02", null, t);
}
@@ -216,9 +246,13 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
* @throws Exception on any exception thrown
*/
private void loadTransformsInfos() throws Exception {
+
transformsInfos = new String[transformsInfoFileNames.length];
for (int i = 0; i < transformsInfoFileNames.length; i++) {
String fileURL = transformsInfoFileNames[i];
+
+ //if fileURL is relative to rootConfigFileDir make it absolute
+ fileURL = FileUtils.makeAbsoluteURL(fileURL, rootConfigFileDir);
String transformsInfo = FileUtils.readURL(fileURL, DEFAULT_ENCODING);
transformsInfos[i] = transformsInfo;
}