aboutsummaryrefslogtreecommitdiff
path: root/connector
diff options
context:
space:
mode:
authorThomas <>2021-06-15 12:14:51 +0200
committerThomas <>2021-06-15 12:14:51 +0200
commit9f0fa316c8f7adeb3529cb4c3b2c553f085f7d95 (patch)
tree84033f9780a68d8301db39a13bb106dcbf4d4db1 /connector
parentdcabab7b6cd0fc763ae4d81eea8283261dd7fede (diff)
downloadNational_eIDAS_Gateway-9f0fa316c8f7adeb3529cb4c3b2c553f085f7d95.tar.gz
National_eIDAS_Gateway-9f0fa316c8f7adeb3529cb4c3b2c553f085f7d95.tar.bz2
National_eIDAS_Gateway-9f0fa316c8f7adeb3529cb4c3b2c553f085f7d95.zip
add ZMR client, to some re-factoring, and a lot of bug-fixing
Diffstat (limited to 'connector')
-rw-r--r--connector/src/main/resources/application.properties14
-rw-r--r--connector/src/main/resources/properties/status_messages_en.properties5
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java69
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java2
-rw-r--r--connector/src/test/resources/config/junit_config_1_springboot.properties12
-rw-r--r--connector/src/test/resources/config/junit_config_2_springboot.properties12
6 files changed, 105 insertions, 9 deletions
diff --git a/connector/src/main/resources/application.properties b/connector/src/main/resources/application.properties
index b13b6c18..e9c3afd1 100644
--- a/connector/src/main/resources/application.properties
+++ b/connector/src/main/resources/application.properties
@@ -82,6 +82,20 @@ eidas.ms.auth.eIDAS.szrclient.eidasbind.mds.inject=false
#eidas.ms.auth.eIDAS.authblock.key.password=f/+saJBc3a}*/T^s
+
+#### matching######
+# ZMR communication
+#eidas.ms.auth.eIDAS.zmrclient.endpoint=http://localhost:1234/demozmr
+#eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.type=jks
+#eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.path=keys/junit.jks
+#eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.password=password
+#eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.path=
+#eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.password=
+
+#eidas.ms.auth.eIDAS.zmrclient.req.organisation.behoerdennr=jUnit123456
+
+
+
#Raw eIDAS Id data storage
eidas.ms.auth.eIDAS.szrclient.workarounds.eidmapping.revisionlog.active=true
diff --git a/connector/src/main/resources/properties/status_messages_en.properties b/connector/src/main/resources/properties/status_messages_en.properties
index 9dcbe1a1..f07a8705 100644
--- a/connector/src/main/resources/properties/status_messages_en.properties
+++ b/connector/src/main/resources/properties/status_messages_en.properties
@@ -5,10 +5,7 @@ eidas.03=No CitizenCountry available. Can not start eIDAS authentication process
eidas.04=Request contains no sessionToken. Authentication process stops
eidas.05=Received eIDAS response-message is not valid. Reason: {0}
eidas.06=LoA from eIDAS response-message {0} does not match to requested LoA
-eidas.07=eIDAS Response attribute-validation FAILED. Attribute:{0} Reason: {1}
-eidas.08=An unexpected error occurred.
-eidas.09=An error occurred while loading your data from official registers. Please contact the support.
-eidas.10=Invalid user input.
+eidas.07=eIDAS Response attribute-validation FAILED. Attribute:{0} Reason: {1}.
config.01=No configuration-file parameter found. Maybe Java SystemD parameter is missing
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
index 37a389b4..b4f39985 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
@@ -7,6 +7,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
+import java.math.BigInteger;
import java.net.URISyntaxException;
import java.util.Map;
import java.util.Timer;
@@ -60,6 +61,18 @@ import at.asitplus.eidas.specific.connector.test.saml2.Pvp2SProfileEndPointTest;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
+import at.gv.bmi.namespace.zmr_su.base._20040201.WorkflowInfoServer;
+import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.EidasIdentitaetErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.NatuerlichePersonErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.NatuerlichePersonErgebnisType.PersonenName;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonErgebnisSatzType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenResponse;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.Personendaten;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonensuchergebnisType;
+import at.gv.e_government.reference.namespace.persondata.de._20040201.IdentificationType;
import at.gv.egiz.components.spring.api.SpringBootApplicationContextInitializer;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
@@ -99,7 +112,7 @@ import szrservices.SignContentResponseType;
@ActiveProfiles(profiles = {"JUNIT", "jUnitTestMode"})
public class FullStartUpAndProcessTest {
- private static final String FINAL_REDIRECT = "http://localhost/finalizeAuthProtocol?pendingid=";
+ private static final String FINAL_REDIRECT = "http://localhost/public/secure/finalizeAuthProtocol?pendingid=";
@Autowired private WebApplicationContext wac;
@Autowired private PvpEndPointCredentialProvider credentialProvider;
@@ -116,6 +129,7 @@ public class FullStartUpAndProcessTest {
public final SoapServiceRule soap = SoapServiceRule.newInstance();
private SZR szrMock;
+ private ServicePort zmrClient;
private String cc;
private String givenName;
@@ -186,7 +200,7 @@ public class FullStartUpAndProcessTest {
}
szrMock = soap.mock(SZR.class, "http://localhost:1234/demoszr");
-
+ zmrClient = soap.mock(ServicePort.class, "http://localhost:1234/demozmr");
cc = RandomStringUtils.randomAlphabetic(2).toUpperCase();
@@ -337,8 +351,9 @@ public class FullStartUpAndProcessTest {
RequestContextHolder.resetRequestAttributes();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(eidasNodeRespReq, finalizeResp));
- injectSzrResponse();
-
+ injectZmrResponse();
+ injectSzrResponse();
+
//excute eIDAS node response
eidasSignal.restoreEidasAuthProcess(eidasNodeRespReq, finalizeResp);
@@ -405,6 +420,52 @@ public class FullStartUpAndProcessTest {
when(szrMock.signContent(any(), any(), any())).thenReturn(signContentResp);
}
+
+ private void injectZmrResponse() throws Exception {
+ ResponseType resp = new ResponseType();
+
+ WorkflowInfoServer workflow = new WorkflowInfoServer();
+ workflow.setProzessInstanzID(new BigInteger(RandomStringUtils.randomNumeric(10)));
+ resp.setWorkflowInfoServer(workflow);
+
+ PersonSuchenResponse persRespObj = new PersonSuchenResponse();
+ PersonensuchergebnisType searchResult = new PersonensuchergebnisType();
+ PersonErgebnisSatzType personInfoObj = new PersonErgebnisSatzType();
+ resp.setPersonSuchenResponse(persRespObj);
+ persRespObj.setPersonensuchergebnis(searchResult);
+
+ searchResult.setGefundeneSaetzeERnP(0);
+ searchResult.setGefundeneSaetze(1);
+ searchResult.getPersonErgebnisSatz().add(personInfoObj);
+
+ PersonErgebnisType personInfo = new PersonErgebnisType();
+ Personendaten personDataObj = new Personendaten();
+ personInfoObj.setPersonendaten(personDataObj);
+ personDataObj.getPersonErgebnis().add(personInfo);
+
+ EidasIdentitaetErgebnisType eidasPersonalIdentifier = new EidasIdentitaetErgebnisType();
+ personInfo.getEidasIdentitaet().add(eidasPersonalIdentifier);
+ eidasPersonalIdentifier.setDokumentNummer(personalId);
+ eidasPersonalIdentifier.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
+ eidasPersonalIdentifier.setStaatscode3(cc);
+
+ NatuerlichePersonErgebnisType natInfo = new NatuerlichePersonErgebnisType();
+ IdentificationType bpk = new IdentificationType();
+ PersonenName natName = new PersonenName();
+ natInfo.getIdentification().add(bpk);
+ natInfo.setPersonenName(natName);
+ personInfo.setNatuerlichePerson(natInfo);
+
+ bpk.setType(EaafConstants.URN_PREFIX_CDID + "ZP");
+ bpk.setValue(RandomStringUtils.randomAlphabetic(10));
+ natInfo.setGeburtsdatum(dateOfBirth);
+ natName.setFamilienname(familyName);
+ natName.setVorname(givenName);
+
+ when(zmrClient.service(any(), any())).thenReturn(resp);
+
+ }
+
private String validateEidasNodeRequestAndBuildResponse(String eidasNodeReqToken)
throws SpecificCommunicationException, URISyntaxException {
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
index d2c4aff2..546d2824 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
@@ -69,7 +69,7 @@ public class ProcessEngineSignalControllerTest {
Assert.assertEquals("http StatusCode", 302, httpResp.getStatus());
Assert.assertNotNull("redirect header", httpResp.getHeaderValue("Location"));
Assert.assertTrue("wrong redirect header",
- httpResp.getHeader("Location").startsWith("http://localhost/errorHandling?errorid="));
+ httpResp.getHeader("Location").startsWith("http://localhost//public/secure/errorHandling?errorid="));
}
diff --git a/connector/src/test/resources/config/junit_config_1_springboot.properties b/connector/src/test/resources/config/junit_config_1_springboot.properties
index fc0c7241..9e4ec415 100644
--- a/connector/src/test/resources/config/junit_config_1_springboot.properties
+++ b/connector/src/test/resources/config/junit_config_1_springboot.properties
@@ -43,6 +43,18 @@ eidas.ms.auth.eIDAS.szrclient.debug.logfullmessages=true
eidas.ms.auth.eIDAS.szrclient.debug.useDummySolution=false
+#### matching######
+# ZMR communication
+eidas.ms.auth.eIDAS.zmrclient.endpoint=http://localhost:1234/demozmr
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.type=jks
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.path=keys/junit.jks
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.password=password
+eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.path=
+eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.password=
+
+eidas.ms.auth.eIDAS.zmrclient.req.organisation.behoerdennr=jUnit123456
+
+
## PVP2 S-Profile end-point configuration
eidas.ms.pvp2.keystore.type=jks
diff --git a/connector/src/test/resources/config/junit_config_2_springboot.properties b/connector/src/test/resources/config/junit_config_2_springboot.properties
index 4c2be39b..2300630f 100644
--- a/connector/src/test/resources/config/junit_config_2_springboot.properties
+++ b/connector/src/test/resources/config/junit_config_2_springboot.properties
@@ -43,6 +43,18 @@ eidas.ms.auth.eIDAS.szrclient.debug.logfullmessages=true
eidas.ms.auth.eIDAS.szrclient.debug.useDummySolution=false
+#### matching######
+# ZMR communication
+eidas.ms.auth.eIDAS.zmrclient.endpoint=http://localhost:1234/demozmr
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.type=jks
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.path=keys/junit.jks
+eidas.ms.auth.eIDAS.zmrclient.ssl.keyStore.password=password
+eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.path=
+eidas.ms.auth.eIDAS.zmrclient.ssl.trustStore.password=
+
+eidas.ms.auth.eIDAS.zmrclient.req.organisation.behoerdennr=jUnit123456
+
+
## PVP2 S-Profile end-point configuration
eidas.ms.pvp2.keystore.type=jks