aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java37
1 files changed, 36 insertions, 1 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
index 132b6af01..49f87122d 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
@@ -33,7 +33,9 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.config.auth.IOAAuthParameters;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.config.auth.data.DynamicOAAuthParameters;
+import at.gv.egovernment.moa.id.moduls.IRequest;
import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
+import at.gv.egovernment.moa.id.protocols.stork2.MOASTORKRequest;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.Constants;
@@ -62,7 +64,7 @@ public class DynamicOAAuthParameterBuilder {
attrValue.startsWith(Constants.URN_PREFIX_STORK) ) {
dynamicOA.setBusinessService(true);
dynamicOA.setTarget(attrValue);
-
+
} else {
Logger.error("Sector identification " + attrValue + " is not a valid Target or BusinessServiceArea");
throw new DynamicOABuildException("Sector identification " + attrValue + " is not a valid Target or BusinessServiceArea", null);
@@ -106,4 +108,37 @@ public class DynamicOAAuthParameterBuilder {
}
+
+ /**
+ * @param oaParam
+ * @param protocolRequest
+ * @return
+ */
+ public static IOAAuthParameters buildFromAuthnRequest(
+ IOAAuthParameters oaParam, IRequest protocolRequest) {
+
+ DynamicOAAuthParameters dynOAParams = new DynamicOAAuthParameters();
+ dynOAParams.setApplicationID(oaParam.getPublicURLPrefix());
+ dynOAParams.setBusinessService(oaParam.getBusinessService());
+
+ if (protocolRequest instanceof MOASTORKRequest)
+ return buildFromSTORKRequest(dynOAParams, (MOASTORKRequest) protocolRequest);
+
+ Logger.warn("Dynamic OA generation failed. RequestType is not implemented.");
+ return null;
+ }
+
+ /**
+ * @param oaParam
+ * @param protocolRequest
+ * @return
+ */
+ private static IOAAuthParameters buildFromSTORKRequest(
+ DynamicOAAuthParameters oaParam, MOASTORKRequest protocolRequest) {
+
+ oaParam.setBusinessTarget(Constants.URN_PREFIX_STORK + "+" + "AT" + "+" + protocolRequest.getSpCountry());
+ oaParam.setBusinessService(true);
+
+ return oaParam;
+ }
}