aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java91
1 files changed, 89 insertions, 2 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java
index b5275cdd5..5a598b03d 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationBuilder.java
@@ -94,6 +94,13 @@ public class ConfigurationBuilder {
/** an XPATH-Expression */
protected static final String AUTH_TEMPLATE_XPATH =
ROOT + CONF + "AuthComponent/" + CONF + "Templates/" + CONF + "Template/@URL";
+ /** an XPATH-Expression */
+ public static final String AUTH_TEMPLATE_ONLINEMANDATES_BKU_XPATH =
+ ROOT + CONF + "AuthComponent/" + CONF + "Templates/" + CONF + "OnlineMandates/" + CONF + "BKU";
+
+
+ //protected static final String AUTH_MANDATE_TEMPLATE_XPATH =
+// ROOT + CONF + "AuthComponent/" + CONF + "Templates/" + CONF + "MandateTemplate/@URL";
/** an XPATH-Expression */
protected static final String INPUT_PROCESSOR_TEMPLATE_XPATH =
ROOT + CONF + "AuthComponent/" + CONF + "Templates/" + CONF + "InputProcessorSignTemplate/@URL";
@@ -145,6 +152,11 @@ public class ConfigurationBuilder {
/** an XPATH-Expression */
protected static final String OA_AUTH_COMPONENT_TEMPLATE_XPATH =
CONF + "Templates/" + CONF + "Template/@URL";
+ /** an XPATH-Expression */
+ public static final String OA_AUTH_COMPONENT_TEMPLATE_ONLINEMANDATES_BKU_XPATH =
+ CONF + "Templates/" + CONF + "OnlineMandates/" + CONF + "BKU";
+ //protected static final String OA_AUTH_COMPONENT_MANDATE_TEMPLATE_XPATH =
+ //CONF + "Templates/" + CONF + "MandateTemplate/@URL";
/** an XPATH-Expression */
protected static final String OA_AUTH_COMPONENT_TRANSFORMS_INFO_FILENAME_XPATH = CONF + "TransformsInfo/@filename";
/** an XPATH-Expression */
@@ -465,10 +477,12 @@ public class ConfigurationBuilder {
String bkuSelectionTemplateURL =
XPathUtils.getAttributeValue(configElem_, AUTH_BKUSELECT_TEMPLATE_XPATH, null);
String templateURL =
- XPathUtils.getAttributeValue(configElem_, AUTH_TEMPLATE_XPATH, null);
+ XPathUtils.getAttributeValue(configElem_, AUTH_TEMPLATE_XPATH, null);
String inputProcessorSignTemplateURL =
XPathUtils.getAttributeValue(configElem_, INPUT_PROCESSOR_TEMPLATE_XPATH, null);
+ OnlineMandatesTemplates[] templatesOnlineMandates = buildTemplateOnlineMandates(configElem_);
+
List OA_set = new ArrayList();
NodeList OAIter = XPathUtils.selectNodeList(configElem_, OA_XPATH);
@@ -536,7 +550,9 @@ public class ConfigurationBuilder {
oap.setProvideIdentityLink(BoolUtils.valueOf(authComponent.getAttribute("provideIdentityLink")));
oap.setProvideCertificate(BoolUtils.valueOf(authComponent.getAttribute("provideCertificate")));
oap.setBkuSelectionTemplateURL(buildTemplateURL(authComponent, OA_AUTH_COMPONENT_BKUSELECT_TEMPLATE_XPATH, bkuSelectionTemplateURL));
- oap.setTemplateURL(buildTemplateURL(authComponent, OA_AUTH_COMPONENT_TEMPLATE_XPATH, templateURL));
+ oap.setTemplateURL(buildTemplateURL(authComponent, OA_AUTH_COMPONENT_TEMPLATE_XPATH, templateURL));
+ oap.setTemplateOnlineMandates(buildTemplateOnlineMandatesOA(authComponent, templatesOnlineMandates));
+
oap.setInputProcessorSignTemplateURL(buildTemplateURL(authComponent, INPUT_PROCESSOR_TEMPLATE_XPATH, inputProcessorSignTemplateURL));
// load OA specific transforms if present
String[] transformsInfoFileNames = buildTransformsInfoFileNames(authComponent, OA_AUTH_COMPONENT_TRANSFORMS_INFO_FILENAME_XPATH);
@@ -590,6 +606,77 @@ public class ConfigurationBuilder {
}
return templateURL;
}
+
+
+
+ protected OnlineMandatesTemplates[] buildTemplateOnlineMandates(Node contextNode) {
+ String xpathExpr = AUTH_TEMPLATE_ONLINEMANDATES_BKU_XPATH;
+ List onlineMandatesTemplatesList = new ArrayList();
+
+ NodeIterator bkuIter = XPathUtils.selectNodeIterator(contextNode, xpathExpr);
+
+ Element bkuElem;
+ while ((bkuElem = (Element) bkuIter.nextNode()) != null) {
+ String bkuUrl = XPathUtils.getAttributeValue(bkuElem, "@URL", null);
+ String moaidTemplateUrl = XPathUtils.getAttributeValue(bkuElem, CONF + "MOA-ID-Template/@URL", null);
+ String mandateTemplateUrl = XPathUtils.getAttributeValue(bkuElem, CONF + "MandateTemplate/@URL", null);
+
+ OnlineMandatesTemplates template = new OnlineMandatesTemplates();
+ template.setBkuURL(bkuUrl);
+ if (moaidTemplateUrl != null) {
+ moaidTemplateUrl = FileUtils.makeAbsoluteURL(moaidTemplateUrl, rootConfigFileDir_);
+ }
+ if (moaidTemplateUrl != null) {
+ mandateTemplateUrl = FileUtils.makeAbsoluteURL(mandateTemplateUrl, rootConfigFileDir_);
+ }
+ template.setMoaIdTemplateURL(moaidTemplateUrl);
+ template.setMandatesTemplateURL(mandateTemplateUrl);
+
+ onlineMandatesTemplatesList.add(template);
+
+ }
+
+ if (onlineMandatesTemplatesList.isEmpty())
+ return null;
+
+ OnlineMandatesTemplates[] onlinemandatesTemplates = new OnlineMandatesTemplates[onlineMandatesTemplatesList.size()];
+ onlineMandatesTemplatesList.toArray(onlinemandatesTemplates);
+
+ return onlinemandatesTemplates;
+
+ }
+
+ protected OnlineMandatesTemplates[] buildTemplateOnlineMandatesOA(Node contextNode, OnlineMandatesTemplates[] defaultTemplatesOnlineMandates) {
+
+ String xpathExpr = OA_AUTH_COMPONENT_TEMPLATE_ONLINEMANDATES_BKU_XPATH;
+ List onlineMandatesTemplatesList = new ArrayList();
+
+ NodeIterator bkuIter = XPathUtils.selectNodeIterator(contextNode, xpathExpr);
+
+ Element bkuElem;
+ while ((bkuElem = (Element) bkuIter.nextNode()) != null) {
+ String bkuUrl = XPathUtils.getAttributeValue(bkuElem, "@URL", null);
+ String moaidTemplateUrl = XPathUtils.getAttributeValue(bkuElem, CONF + "MOA-ID-Template/@URL", null);
+ String mandateTemplateUrl = XPathUtils.getAttributeValue(bkuElem, CONF + "MandateTemplate/@URL", null);
+
+ OnlineMandatesTemplates template = new OnlineMandatesTemplates();
+ template.setBkuURL(bkuUrl);
+ template.setMoaIdTemplateURL(moaidTemplateUrl);
+ template.setMandatesTemplateURL(mandateTemplateUrl);
+
+ onlineMandatesTemplatesList.add(template);
+
+ }
+
+ if (onlineMandatesTemplatesList.isEmpty())
+ return defaultTemplatesOnlineMandates;
+
+ OnlineMandatesTemplates[] onlinemandatesTemplates = new OnlineMandatesTemplates[onlineMandatesTemplatesList.size()];
+ onlineMandatesTemplatesList.toArray(onlinemandatesTemplates);
+
+ return onlinemandatesTemplates;
+
+ }
/**