aboutsummaryrefslogtreecommitdiff
path: root/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java')
-rw-r--r--id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java
index fd918c7f4..d65d74c3f 100644
--- a/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java
+++ b/id/server/modules/moa-id-module-elga_mandate_service/src/main/java/at/gv/egovernment/moa/id/auth/modules/elgamandates/tasks/RequestELGAMandateTask.java
@@ -23,6 +23,7 @@
package at.gv.egovernment.moa.id.auth.modules.elgamandates.tasks;
import java.security.NoSuchAlgorithmException;
+import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -45,6 +46,8 @@ import at.gv.egovernment.moa.id.auth.modules.elgamandates.utils.ELGAMandateServi
import at.gv.egovernment.moa.id.auth.modules.elgamandates.utils.ELGAMandatesCredentialProvider;
import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
import at.gv.egovernment.moa.id.process.api.ExecutionContext;
import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.PVPAuthnRequestBuilder;
@@ -71,9 +74,22 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask {
public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response)
throws TaskExecutionException {
try{
- // get IDP entityID
- String elgaMandateServiceEntityID = authConfig.getBasicMOAIDConfiguration(ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID);
-
+ // get IDP entityID from Online Application configuration
+ String elgaMandateServiceEntityID = pendingReq.getOnlineApplicationConfiguration().getConfigurationValue(ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID);
+
+ // use first ELGA Mandate-Service from general MOA-ID configuration, of no OA specific exists
+ if (MiscUtil.isEmpty(elgaMandateServiceEntityID)) {
+ Logger.info("No Online-Application specific ELGA Mandate-Service found. Use first entry in general MOA-ID configuration");
+ List<String> configuratedEntityIDs = KeyValueUtils.getListOfCSVValues(
+ authConfig.getConfigurationWithKey(
+ MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL + "."
+ + ELGAMandatesAuthConstants.CONFIG_PROPS_ENTITYID));
+
+ if (configuratedEntityIDs.size() > 0)
+ elgaMandateServiceEntityID = configuratedEntityIDs.get(0);
+
+ }
+
if (MiscUtil.isEmpty(elgaMandateServiceEntityID)) {
Logger.info("Connect ELGA Mandate-Service FAILED -> not EntityID found!");
throw new TaskExecutionException(pendingReq, "Connect ELGA Mandate-Service FAILED",
@@ -88,7 +104,7 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask {
Logger.warn("Use not recommended metadata-provider initialization!"
+ " SAML2 'Well-Known-Location' is the preferred methode.");
Logger.info("Initialize ELGA Mandate-Service metadata-provider with URL:" + metadataURL);
- metadataService.initialize(metadataURL);
+ metadataService.addMetadataWithMetadataURL(metadataURL);
}
@@ -189,6 +205,7 @@ public class RequestELGAMandateTask extends AbstractAuthServletTask {
authnReqBuilder.buildAuthnRequest(pendingReq, authnReqConfig , response);
//write revisions log entry
+ revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_ELGA_MANDATE_SERVICE_ENTITYID, elgaMandateServiceEntityID);
revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.AUTHPROCESS_ELGA_MANDATE_SERVICE_REQUESTED, moasession.getMandateReferenceValue());
} catch (MetadataProviderException e) {