aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java')
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java242
1 files changed, 158 insertions, 84 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java
index 694ff0720..4f47efb78 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java
@@ -30,6 +30,7 @@ import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -110,12 +111,10 @@ public class ConfigurationMigrationUtils {
* but no MOA-ID configuration prefix
*
* @param oa MOA-ID 2.x OnlineApplication configuration
+ * @param storkConfig
* @return MOA-ID 3.x OnlineApplication configuration without prefix but never Null
*/
- public static Map<String, String> convertHyberJaxBOnlineApplicationToKeyValue(OnlineApplication oa) {
- //TODO: add C-PEPS countries and STORK attributes from general config!!!!
- //TODO: add correct list identifiers for metadata handling
-
+ public static Map<String, String> convertHyberJaxBOnlineApplicationToKeyValue(OnlineApplication oa, STORK storkConfig) {
Map<String, String> result = new HashMap<String, String>();
if (oa != null) {
//convert oaID and friendlyname
@@ -296,6 +295,34 @@ public class ConfigurationMigrationUtils {
result.put(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_USERREQUEST, Boolean.TRUE.toString());
}
+ //convert interfederation configuration
+ InterfederationIDPType moaIDP = oa.getInterfederationIDP();
+ if (moaIDP != null) {
+ result.put(MOAIDConfigurationConstants.PREFIX_SERVICES, MOAIDConfigurationConstants.PREFIX_IIDP);
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL,
+ moaIDP.getAttributeQueryURL());
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND,
+ String.valueOf(moaIDP.isInboundSSO()));
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND,
+ String.valueOf(moaIDP.isOutboundSSO()));
+
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE,
+ String.valueOf(moaIDP.isStoreSSOSession()));
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR,
+ String.valueOf(moaIDP.isPerformLocalAuthenticationOnError()));
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST,
+ String.valueOf(moaIDP.isPerformPassivRequest()));
+ }
+
+ //convert STORK <-> PVP2X gateway configuration
+ InterfederationGatewayType gateway = oa.getInterfederationGateway();
+ if (gateway != null) {
+ result.put(MOAIDConfigurationConstants.PREFIX_SERVICES, MOAIDConfigurationConstants.PREFIX_GATEWAY);
+ result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER,
+ gateway.getForwardIDPIdentifier());
+
+ }
+
//convert STORK config
OASTORK config = oaauth.getOASTORK();
if(config != null) {
@@ -309,46 +336,6 @@ public class ConfigurationMigrationUtils {
else
result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL, "4");
- if (config.getCPEPS() != null) {
- for (int i=0; i<config.getCPEPS().size(); i++) {
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED,
- Boolean.TRUE.toString());
-
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE,
- config.getCPEPS().get(i).getCountryCode());
-
- }
- }
-
- if (config.getOAAttributes() != null) {
- for (int i=0; i<config.getOAAttributes().size(); i++) {
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME,
- config.getOAAttributes().get(i).getName());
-
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_REQUESTED,
- Boolean.TRUE.toString());
-
-
- if (config.getOAAttributes().get(i).isMandatory() != null)
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY,
- config.getOAAttributes().get(i).isMandatory().toString());
- else
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
- + "." + String.valueOf(i) + "."
- + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY,
- Boolean.FALSE.toString());
- }
- }
// fetch vidp config
if (config.isRequireConsent() != null)
@@ -380,6 +367,120 @@ public class ConfigurationMigrationUtils {
}
}
+
+ //only fetch C-PEPS and attributes if service is an OA
+ if (!result.containsKey(MOAIDConfigurationConstants.PREFIX_SERVICES)) {
+ //fetch C-PEPS config
+ List<String> configuredCPEPs = new ArrayList<String>();
+ if (storkConfig != null && storkConfig.getCPEPS() != null) {
+ for (CPEPS el : storkConfig.getCPEPS()) {
+ if (MiscUtil.isNotEmpty(el.getCountryCode()))
+ configuredCPEPs.add(el.getCountryCode());
+
+ }
+ }
+ int listCounter = 0;
+ if (config.getCPEPS() != null) {
+ Iterator<CPEPS> oaCPEPSInterator = config.getCPEPS().iterator();
+ while(oaCPEPSInterator.hasNext()) {
+ CPEPS oaCpeps = oaCPEPSInterator.next();
+ String oaCountryCode = oaCpeps.getCountryCode();
+ if (MiscUtil.isNotEmpty(oaCountryCode)) {
+ if (configuredCPEPs.contains(oaCountryCode))
+ configuredCPEPs.remove(oaCountryCode);
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED,
+ Boolean.TRUE.toString());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE,
+ oaCountryCode);
+
+ listCounter++;
+ }
+ }
+ }
+ Iterator<String> confCPEPS = configuredCPEPs.iterator();
+ while (confCPEPS.hasNext()) {
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED,
+ Boolean.TRUE.toString());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE,
+ confCPEPS.next());
+ listCounter++;
+
+ }
+
+ //fetch STORK attributes
+ List<String> configuredAttributs = new ArrayList<String>();
+ if (storkConfig != null && storkConfig.getAttributes() != null) {
+ for (StorkAttribute el : storkConfig.getAttributes()) {
+ if (MiscUtil.isNotEmpty(el.getName()))
+ configuredAttributs.add(el.getName());
+
+ }
+ }
+ listCounter = 0;
+ if (config.getOAAttributes() != null) {
+ Iterator<OAStorkAttribute> oaAttributeInterator = config.getOAAttributes().iterator();
+ while (oaAttributeInterator.hasNext()) {
+ OAStorkAttribute oaAttr = oaAttributeInterator.next();
+ if (MiscUtil.isNotEmpty(oaAttr.getName())) {
+ if (configuredAttributs.contains(oaAttr.getName()))
+ configuredAttributs.remove(oaAttr.getName());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME,
+ oaAttr.getName());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_REQUESTED,
+ Boolean.TRUE.toString());
+
+
+ if (oaAttr.isMandatory() != null)
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY,
+ oaAttr.isMandatory().toString());
+ else
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY,
+ Boolean.FALSE.toString());
+ listCounter++;
+ }
+ }
+ }
+ Iterator<String> configuredAttributsInterator = configuredAttributs.iterator();
+ while (configuredAttributsInterator.hasNext()) {
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME,
+ configuredAttributsInterator.next());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_REQUESTED,
+ Boolean.TRUE.toString());
+
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+ + "." + String.valueOf(listCounter) + "."
+ + MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY,
+ Boolean.FALSE.toString());
+ listCounter++;
+
+ }
+ }
}
//convert protocols SAML1
@@ -479,9 +580,9 @@ public class ConfigurationMigrationUtils {
TransformsInfoType bkuSelectTemplate = templates.getBKUSelectionTemplate();
if (bkuSelectTemplate != null && MiscUtil.isNotEmpty(bkuSelectTemplate.getFilename())) {
try {
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION,
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA,
Base64Utils.encode(bkuSelectTemplate.getTransformation()));
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_FILENAME,
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_PREVIEW,
bkuSelectTemplate.getFilename());
} catch (Exception e) {
@@ -495,9 +596,9 @@ public class ConfigurationMigrationUtils {
TransformsInfoType sendAssertionTemplate = templates.getSendAssertionTemplate();
if (sendAssertionTemplate != null && MiscUtil.isNotEmpty(sendAssertionTemplate.getFilename())) {
try {
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION,
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA,
Base64Utils.encode(sendAssertionTemplate.getTransformation()));
- result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_FILENAME,
+ result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_PREVIEW,
sendAssertionTemplate.getFilename());
} catch (Exception e) {
@@ -577,38 +678,11 @@ public class ConfigurationMigrationUtils {
}
}
}
-
- //convert interfederation configuration
- InterfederationIDPType moaIDP = oa.getInterfederationIDP();
- if (moaIDP != null) {
- result.put(MOAIDConfigurationConstants.PREFIX_SERVICES, MOAIDConfigurationConstants.PREFIX_IIDP);
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL,
- moaIDP.getAttributeQueryURL());
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND,
- String.valueOf(moaIDP.isInboundSSO()));
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND,
- String.valueOf(moaIDP.isOutboundSSO()));
-
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE,
- String.valueOf(moaIDP.isStoreSSOSession()));
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR,
- String.valueOf(moaIDP.isPerformLocalAuthenticationOnError()));
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST,
- String.valueOf(moaIDP.isPerformPassivRequest()));
- }
-
- //convert STORK <-> PVP2X gateway configuration
- InterfederationGatewayType gateway = oa.getInterfederationGateway();
- if (gateway != null) {
- result.put(MOAIDConfigurationConstants.PREFIX_SERVICES, MOAIDConfigurationConstants.PREFIX_GATEWAY);
- result.put(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER,
- gateway.getForwardIDPIdentifier());
-
- }
-
+
//set onlineapplication identifier if nothing is set
- if (!result.containsKey(MOAIDConfigurationConstants.PREFIX_SERVICES))
+ if (!result.containsKey(MOAIDConfigurationConstants.PREFIX_SERVICES)) {
result.put(MOAIDConfigurationConstants.PREFIX_SERVICES, MOAIDConfigurationConstants.PREFIX_OA);
+ }
}
return result;
@@ -922,11 +996,11 @@ public class ConfigurationMigrationUtils {
templates.setAditionalAuthBlockText(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCKTEXT));
//store BKU-selection and send-assertion templates
- if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION))) {
+ if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA))) {
TransformsInfoType el1 = new TransformsInfoType();
try {
- el1.setTransformation(Base64Utils.decode(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION), false));
- el1.setFilename(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_FILENAME));
+ el1.setTransformation(Base64Utils.decode(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA), false));
+ el1.setFilename(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_PREVIEW));
templates.setBKUSelectionTemplate(el1);
} catch (IOException e) {
@@ -934,11 +1008,11 @@ public class ConfigurationMigrationUtils {
}
}
- if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION))) {
+ if (MiscUtil.isNotEmpty(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA))) {
TransformsInfoType el1 = new TransformsInfoType();
try {
- el1.setTransformation(Base64Utils.decode(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION), false));
- el1.setFilename(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_FILENAME));
+ el1.setTransformation(Base64Utils.decode(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA), false));
+ el1.setFilename(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_PREVIEW));
templates.setSendAssertionTemplate(el1);
} catch (IOException e) {