aboutsummaryrefslogtreecommitdiff
path: root/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java')
-rw-r--r--id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java77
1 files changed, 30 insertions, 47 deletions
diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java
index 3f1e999ca..e878f8ab1 100644
--- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java
+++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/ReceiveConsentForAddtionalAttributesTask.java
@@ -3,11 +3,14 @@ package at.gv.egovernment.moa.id.auth.modules.eidas.tasks;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
+import java.util.Map;
+import java.util.Map.Entry;
import javax.net.ssl.SSLSocketFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.io.IOUtils;
import org.apache.http.Header;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
@@ -26,10 +29,9 @@ import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
import at.gv.egiz.eaaf.core.exceptions.EAAFStorageException;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
-import at.gv.egiz.eid4u.api.attributes.Definitions;
-import at.gv.egiz.eid4u.api.attributes.natural.IdType;
import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionWrapper;
import at.gv.egovernment.moa.id.auth.modules.eidas.eID4UConstants;
+import at.gv.egovernment.moa.id.auth.modules.eidas.eid4u.utils.AttributeScopeMapper;
import at.gv.egovernment.moa.id.auth.modules.eidas.exceptions.eID4UAPException;
import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
@@ -39,11 +41,11 @@ import at.gv.egovernment.moa.id.util.CookieUtils;
import at.gv.egovernment.moa.id.util.SSLUtils;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.MiscUtil;
-import eu.eidas.auth.commons.protocol.eidas.impl.PostalAddress;
@Component("ReceiveConsentForAddtionalAttributesTask")
public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServletTask {
+ private static final int HashMap = 0;
@Autowired private AuthConfiguration moaAuthConfig;
@Override
@@ -128,12 +130,14 @@ public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServle
if (Logger.isTraceEnabled()) {
for (Header el : httpResultToken.getAllHeaders())
- Logger.trace("Headername:" + el.getName() + " Value:" + el.getValue());
+ Logger.trace("Resp. Headername:" + el.getName() + " Value:" + el.getValue());
}
if (httpResultToken.getStatusLine().getStatusCode() != 200) {
Logger.info("eID4U AP TokenService anwser with StatusCode:" + httpResultToken.getStatusLine().getStatusCode()
+ " eID4U AP process stopping ... ");
+ if (httpResultToken.getEntity().getContent() != null)
+ Logger.trace("StatusMessage: " + IOUtils.toString(httpResultToken.getEntity().getContent(), "UTF-8"));
throw new eID4UAPException("eID4U AP TokenService return statusCode: " + httpResultToken.getStatusLine().getStatusCode(), null);
}
@@ -166,6 +170,11 @@ public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServle
"X-PVP-BPK",
pendingReq.getRawData(eID4UConstants.PROCESS_CONTEXT_USERS_BPK_EID4U_ATTRPROVIDER, String.class));
+ if (Logger.isTraceEnabled()) {
+ for (Header el : httpGetData.getAllHeaders())
+ Logger.trace("Req. Headername:" + el.getName() + " Value:" + el.getValue());
+ }
+
//request Attribute Provider
HttpResponse httpResultData = httpClient.execute(httpGetData);
@@ -175,12 +184,15 @@ public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServle
if (Logger.isTraceEnabled()) {
for (Header el : httpResultData.getAllHeaders())
- Logger.trace("Headername:" + el.getName() + " Value:" + el.getValue());
+ Logger.trace("Resp. Headername:" + el.getName() + " Value:" + el.getValue());
}
if (httpResultData.getStatusLine().getStatusCode() != 200) {
Logger.info("eID4U Attr.Provider Service anwser with StatusCode:" + httpResultData.getStatusLine().getStatusCode()
+ " eID4U AP process stopping ... ");
+ if (httpResultData.getEntity().getContent() != null)
+ Logger.trace("StatusMessage: " + IOUtils.toString(httpResultData.getEntity().getContent(), "UTF-8"));
+
throw new eID4UAPException("eID4U Attr.Provider Service return statusCode: " + httpResultData.getStatusLine().getStatusCode(), null);
}
@@ -191,11 +203,13 @@ public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServle
new InputStreamReader(httpResultData.getEntity().getContent()));
Logger.trace("FullAttrSet: " + fullAttrSet.toString());
+ //populate eID4U attributes
+ populateEid4uAttributes(fullAttrSet.getAsJsonObject());
- //TODO: implement collection process
- populateEid4uDummyAttributes(fullAttrSet.getAsJsonObject());
-
-
+ //store pendingRequest
+ requestStoreage.storePendingRequest(pendingReq);
+
+
} else
Logger.debug("No eIDAS Request found. Skip eID4U attribute collection");
@@ -206,48 +220,17 @@ public class ReceiveConsentForAddtionalAttributesTask extends AbstractAuthServle
}
}
-
- private void populateEid4uDummyAttributes(JsonObject jsonObject) {
+
+ private void populateEid4uAttributes(JsonObject jsonObject) throws EAAFStorageException {
try {
- eu.eidas.auth.commons.protocol.eidas.impl.PostalAddress.Builder dummyAddr = PostalAddress.builder();
- dummyAddr.postCode("8020");
- dummyAddr.postName("Graz");
- dummyAddr.addressId("25");
- dummyAddr.cvAddressArea("Mustergasse");
- dummyAddr.locatorDesignator("25");
- dummyAddr.thoroughfare("Mustergasse");
-
AuthenticationSessionWrapper session = pendingReq.getSessionData(AuthenticationSessionWrapper.class);
- session.setGenericDataToSession(Definitions.IDTYPE_NAME, IdType.PASSPORT);
- session.setGenericDataToSession(Definitions.IDNUMBER_NAME, "P0571414");
-// session.setGenericDataToSession(Definitions.IDISSUER_NAME, "Magistrat Nirgendwo");
-// session.setGenericDataToSession(Definitions.IDEXPIREDATE_NAME, "2020-01-01");
-// //session.setGenericDataToSession(Definitions.EHICID_NAME, "80010000012345678990");
-// session.setGenericDataToSession(Definitions.NATIONALITY_NAME, "AT");
-// session.setGenericDataToSession(Definitions.CITIZENSHIP_FRIENDLYNAME, "AT");
-// session.setGenericDataToSession(Definitions.MARITALSTATE_NAME, MaritalState.SINGLE);
-// session.setGenericDataToSession(Definitions.COUNTRYOFBIRTH_NAME, "AT");
- session.setGenericDataToSession(Definitions.EMAIL_NAME, jsonObject.get("email").getAsString());
-// session.setGenericDataToSession(Definitions.PHONE_NAME, "+43666111222444");
-// session.setGenericDataToSession(Definitions.TEMPORARYADDRESS_NAME, dummyAddr.build());
- //session.setGenericDataToSession(Definitions.TAXIDENTIFICATIONNUMBER_NAME, "AT/1213454654718");
-// session.setGenericDataToSession(Definitions.HOMEINSTITUTIONNAME_NAME, "Graz Technical University");
-// session.setGenericDataToSession(Definitions.HOMEINSTITUTIONIDENTIFIER_NAME, "A GRAZ02");
-// session.setGenericDataToSession(Definitions.HOMEINSTITUTIONCOUNTRY_NAME, "AT");
-// session.setGenericDataToSession(Definitions.HOMEINSTITUTIONADDRESS_NAME, dummyAddr.build());
-// session.setGenericDataToSession(Definitions.CURRENTLEVELOFSTUDY_NAME, "7");
-// session.setGenericDataToSession(Definitions.FIELDOFSTUDY_NAME, "52");
- //session.setGenericDataToSession(Definitions.CURRENTDEGREE_NAME, "MsC");
-// session.setGenericDataToSession(Definitions.DEGREE_NAME, "6");
-// session.setGenericDataToSession(Definitions.DEGREEAWARDINGINSTITUTION_NAME, "Graz Technical University");
-// session.setGenericDataToSession(Definitions.GRADUATIONYEAR_NAME, "2016");
-// session.setGenericDataToSession(Definitions.DEGREECOUNTRY_NAME, "AT");
-
- //TODO: not all attributes are populated with dummy values
+ Map<String, Object> eID4UAttributes = AttributeScopeMapper.getInstance().populateEid4uAttributesFromTugResponse(jsonObject);
+ for (Entry<String, Object> el : eID4UAttributes.entrySet())
+ session.setGenericDataToSession(el.getKey(), el.getValue());
} catch (EAAFStorageException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Logger.warn("Can NOT inject authentication data into user object.", e);
+ throw e;
}
}