aboutsummaryrefslogtreecommitdiff
path: root/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2018-05-29 07:42:26 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2018-05-29 07:42:26 +0200
commitdc2fb6695f44e3e01088e8a986ae1ac98b1743b1 (patch)
treeecdc909bdba8f9ebcde6313681841fc27b0cde0d /id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks
parentcbc72b4eb01828e56e3244bcfe121d729e7e852a (diff)
downloadmoa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.tar.gz
moa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.tar.bz2
moa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.zip
update SL2.0 module to support more than one VDA backend
Diffstat (limited to 'id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks')
-rw-r--r--id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java29
1 files changed, 26 insertions, 3 deletions
diff --git a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java
index b1dfa9b0d..d9ff9d93c 100644
--- a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java
+++ b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.UUID;
import javax.net.ssl.SSLSocketFactory;
@@ -38,6 +39,7 @@ import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
+import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
import at.gv.egovernment.moa.id.process.api.ExecutionContext;
import at.gv.egovernment.moa.id.util.SSLUtils;
import at.gv.egovernment.moa.util.MiscUtil;
@@ -59,9 +61,9 @@ public class CreateQualeIDRequestTask extends AbstractAuthServletTask {
IOAAuthParameters oaConfig = pendingReq.getOnlineApplicationConfiguration();
//get basic configuration parameters
- String vdaQualeIDUrl = authConfig.getBasicMOAIDConfiguration(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID);
+ String vdaQualeIDUrl = extractVDAURLForSpecificOA(oaConfig);
if (MiscUtil.isEmpty(vdaQualeIDUrl)) {
- Logger.error("NO VDA URL for qualified eID (" + Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID + ")");
+ Logger.error("NO VDA URL for qualified eID (" + Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT + ")");
throw new SL20Exception("sl20.03", new Object[]{"NO VDA URL for qualified eID"});
}
@@ -165,8 +167,29 @@ public class CreateQualeIDRequestTask extends AbstractAuthServletTask {
}
+ }
+
+ private String extractVDAURLForSpecificOA(IOAAuthParameters oaConfig) {
+ Map<String, String> listOfVDAs = authConfig.getBasicMOAIDConfigurationWithPrefix(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_LIST);
+ Map<String, String> listOfSPs = authConfig.getBasicMOAIDConfigurationWithPrefix(Constants.CONFIG_PROP_SP_LIST);
+
+ for (Entry<String, String> el : listOfSPs.entrySet()) {
+ List<String> spEntityIds = KeyValueUtils.getListOfCSVValues(el.getValue());
+ if (spEntityIds.contains(oaConfig.getPublicURLPrefix())) {
+ Logger.trace("Select VDA endPoint with Id: " + el.getKey());
+ if (listOfVDAs.containsKey(el.getKey()))
+ return listOfVDAs.get(el.getKey());
+
+ else
+ Logger.info("No VDA endPoint with Id: " + el.getKey());
+
+ } else
+ Logger.trace("SP list: " + el.getKey() + " does not contain OAIdentifier: " + oaConfig.getPublicURLPrefix());
-
+ }
+
+ Logger.debug("NO SP specific VDA endpoint found. Use default VDA");
+ return authConfig.getBasicMOAIDConfiguration(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT);
}