aboutsummaryrefslogtreecommitdiff
path: root/id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java')
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java29
1 files changed, 26 insertions, 3 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java b/id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java
index 897d14da9..622ae6f82 100644
--- a/id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java
+++ b/id.server/src/at/gv/egovernment/moa/id/config/proxy/ProxyConfigurationProvider.java
@@ -1,7 +1,9 @@
package at.gv.egovernment.moa.id.config.proxy;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.net.MalformedURLException;
import org.w3c.dom.Element;
@@ -11,6 +13,7 @@ import at.gv.egovernment.moa.id.config.ConfigurationProvider;
import at.gv.egovernment.moa.id.config.ConnectionParameter;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.DOMUtils;
+import at.gv.egovernment.moa.util.FileUtils;
/**
* A class providing access to the Proxy Part of the MOA-ID configuration data.
@@ -32,6 +35,11 @@ public class ProxyConfigurationProvider extends ConfigurationProvider {
/** Singleton instance. <code>null</code>, if none has been created. */
private static ProxyConfigurationProvider instance;
+ /**
+ * main configuration file directory name used to configure MOA-ID
+ */
+ private String rootConfigFileDir;
+
//
// configuration data
//
@@ -117,14 +125,29 @@ public class ProxyConfigurationProvider 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);
authComponentConnectionParameter = builder.buildAuthComponentConnectionParameter();
- onlineApplicationProxyParameter = builder.buildOnlineApplicationProxyParameters();
+
+ onlineApplicationProxyParameter = builder.buildOnlineApplicationProxyParameters();
+ for(int i = 0; i < onlineApplicationProxyParameter.length; i++) {
+ onlineApplicationProxyParameter[i].setConfigFileURL(FileUtils.makeAbsoluteURL(onlineApplicationProxyParameter[i].getConfigFileURL(), rootConfigFileDir));
+ }
+
genericConfiguration = builder.buildGenericConfiguration();
defaultChainingMode = builder.getDefaultChainingMode();
chainingModes = builder.buildChainingModes();
trustedCACertificates = builder.getTrustedCACertificates();
+ trustedCACertificates = FileUtils.makeAbsoluteURL(trustedCACertificates, rootConfigFileDir);
+
}
catch (Throwable t) {
throw new ConfigurationException("config.02", null, t);
@@ -166,5 +189,5 @@ public class ProxyConfigurationProvider extends ConfigurationProvider {
}
return null;
}
-
+
} \ No newline at end of file