aboutsummaryrefslogtreecommitdiff
path: root/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java')
-rw-r--r--id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java151
1 files changed, 139 insertions, 12 deletions
diff --git a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java
index 270d0866c..9b25f17e8 100644
--- a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java
+++ b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java
@@ -34,6 +34,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.gv.egiz.components.configuration.api.Configuration;
+import at.gv.egiz.components.configuration.api.ConfigurationException;
import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
import at.gv.egovernment.moa.id.commons.validation.ValidationHelper;
@@ -76,6 +77,7 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_REVOCATIONCHECKING, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
+ temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SSO_AUTHBLOCK_TEXT, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SSO_SERVICENAME, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
temp.add(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SSO_TARGET, MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL));
@@ -256,12 +258,29 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme
check = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL, getKeyPrefix()));
if (MiscUtil.isNotEmpty(check)) {
- if (!ValidationHelper.validateURL(check)) {
- log.info("Not valid Online-Mandate Service URL");
- errors.add(new ValidationObjectIdentifier(
- MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL,
- "Services - OVS",
- LanguageHelper.getErrorString("validation.general.mandateservice.valid")));
+ String[] misURLs = check.split(",");
+ for (String el : misURLs) {
+ if (MiscUtil.isNotEmpty(el) && !ValidationHelper.validateURL(StringUtils.chomp(el.trim()))) {
+ log.info("Not valid Online-Mandate Service URL");
+ errors.add(new ValidationObjectIdentifier(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL,
+ "Services - OVS",
+ LanguageHelper.getErrorString("validation.general.mandateservice.valid", new Object[]{el})));
+ }
+ }
+ }
+
+ check = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, getKeyPrefix()));
+ if (MiscUtil.isNotEmpty(check)) {
+ String[] misURLs = check.split(",");
+ for (String el : misURLs) {
+ if (MiscUtil.isNotEmpty(el) && !ValidationHelper.validateURL(StringUtils.chomp(el.trim()))) {
+ log.info("Not valid ELGA Mandate Service URL");
+ errors.add(new ValidationObjectIdentifier(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL,
+ "Services - ELGA",
+ LanguageHelper.getErrorString("validation.general.elga.mandateservice.valid", new Object[]{el})));
+ }
}
}
@@ -477,12 +496,15 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme
check = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL, getKeyPrefix()));
if (MiscUtil.isNotEmpty(check)) {
- if (!ValidationHelper.validateURL(check)) {
- log.info("SZRGW URL is not valid");
- errors.add(new ValidationObjectIdentifier(
- MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL,
- "Services - SZR-GW URL",
- LanguageHelper.getErrorString("validation.general.szrgw.url.valid")));
+ String[] szrGWServiceURLs = check.split(",");
+ for (String el : szrGWServiceURLs) {
+ if (MiscUtil.isNotEmpty(el) && !ValidationHelper.validateURL(StringUtils.chomp(el.trim()))) {
+ log.info("SZRGW URL is not valid");
+ errors.add(new ValidationObjectIdentifier(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL,
+ "Services - SZR-GW URL",
+ LanguageHelper.getErrorString("validation.general.szrgw.url.valid", new Object[]{el})));
+ }
}
}
@@ -618,6 +640,111 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme
}
+ //normalize CSV of ELGA mandate-service URLs
+ try {
+ String elgaServiceURLs = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, getKeyPrefix()));
+ List<String> currentElgaServiceURLs = KeyValueUtils.getListOfCSVValues(dbconfig.getStringValue(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL));
+
+ if (MiscUtil.isNotEmpty(elgaServiceURLs)) {
+ String normalizedElgaServiceURLs = KeyValueUtils.normalizeCSVValueString(elgaServiceURLs);
+ if (!normalizedElgaServiceURLs.equals(elgaServiceURLs)) {
+ newConfigValues.put(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, normalizedElgaServiceURLs);
+ log.debug("Change key: " + MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL
+ + " from value: " + input.get(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL)
+ + " to value: " + normalizedElgaServiceURLs);
+ }
+
+ //check if service URLs are removed
+ for (String el : KeyValueUtils.getListOfCSVValues(normalizedElgaServiceURLs)) {
+ if (currentElgaServiceURLs.contains(el))
+ currentElgaServiceURLs.remove(el);
+ }
+ }
+ //update OA configuration
+ if (!currentElgaServiceURLs.isEmpty()) {
+ String[] servicesOAs = dbconfig.findConfigurationId(
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES_OA
+ + ".%."
+ + MOAIDConfigurationConstants.SERVICE_EXTERNAL_ELGA_MANDATE_SERVICE_URL);
+ for (String service : servicesOAs) {
+ String spElgaService = dbconfig.getStringValue(service);
+ if (MiscUtil.isNotEmpty(spElgaService) &&
+ currentElgaServiceURLs.contains(spElgaService))
+ keysToDelete.add(service);
+ }
+ }
+
+
+
+ //normalize CSV of MIS mandate-service URLs
+ String misServiceURLs = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL, getKeyPrefix()));
+ List<String> currentMisServiceURLs = KeyValueUtils.getListOfCSVValues(dbconfig.getStringValue(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL));
+ if (MiscUtil.isNotEmpty(misServiceURLs)) {
+ String normalizedMisServiceURLs = KeyValueUtils.normalizeCSVValueString(misServiceURLs);
+ if (!normalizedMisServiceURLs .equals(misServiceURLs)) {
+ newConfigValues.put(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL, normalizedMisServiceURLs);
+ log.debug("Change key: " + MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL
+ + " from value: " + input.get(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL)
+ + " to value: " + normalizedMisServiceURLs);
+ }
+
+ //check if service URLs are removed
+ for (String el : KeyValueUtils.getListOfCSVValues(normalizedMisServiceURLs)) {
+ if (currentMisServiceURLs.contains(el))
+ currentMisServiceURLs.remove(el);
+ }
+ }
+ //update OA configuration
+ if (!currentMisServiceURLs.isEmpty()) {
+ String[] servicesOAs = dbconfig.findConfigurationId(
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES_OA
+ + ".%."
+ + MOAIDConfigurationConstants.SERVICE_EXTERNAL_MIS_SERVICE_URL);
+ for (String service : servicesOAs) {
+ String spElgaService = dbconfig.getStringValue(service);
+ if (MiscUtil.isNotEmpty(spElgaService) &&
+ currentMisServiceURLs.contains(spElgaService))
+ keysToDelete.add(service);
+ }
+ }
+
+ //normalize CSV of SZR-GW service URLs
+ String szrgwServiceURLs = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, getKeyPrefix()));
+ List<String> currentSzrgwServiceURLs = KeyValueUtils.getListOfCSVValues(dbconfig.getStringValue(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL));
+ if (MiscUtil.isNotEmpty(szrgwServiceURLs)) {
+ String normalizedSzrgwServiceURLs = KeyValueUtils.normalizeCSVValueString(szrgwServiceURLs);
+ if (!normalizedSzrgwServiceURLs .equals(szrgwServiceURLs)) {
+ newConfigValues.put(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL, normalizedSzrgwServiceURLs);
+ log.debug("Change key: " + MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL
+ + " from value: " + input.get(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_ELGA_MANDATE_SERVICE_URL)
+ + " to value: " + normalizedSzrgwServiceURLs);
+ }
+
+ //check if service URLs are removed
+ for (String el : KeyValueUtils.getListOfCSVValues(szrgwServiceURLs)) {
+ if (currentSzrgwServiceURLs.contains(el))
+ currentSzrgwServiceURLs.remove(el);
+ }
+ }
+ //update OA configuration
+ if (!currentSzrgwServiceURLs.isEmpty()) {
+ String[] servicesOAs = dbconfig.findConfigurationId(
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES_OA
+ + ".%."
+ + MOAIDConfigurationConstants.SERVICE_EXTERNAL_SZRGW_SERVICE_URL);
+ for (String service : servicesOAs) {
+ String spElgaService = dbconfig.getStringValue(service);
+ if (MiscUtil.isNotEmpty(spElgaService) &&
+ currentSzrgwServiceURLs.contains(spElgaService))
+ keysToDelete.add(service);
+ }
+ }
+
+ } catch (ConfigurationException e) {
+ log.error("Configuration is not accessable!", e);
+
+ }
+
if (newConfigValues.isEmpty())
return null;
else