aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connector/src/main/resources/application.properties10
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/resources/messages/eidas_connector_message.properties4
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java46
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java31
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1.properties19
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1_springboot.properties11
6 files changed, 110 insertions, 11 deletions
diff --git a/connector/src/main/resources/application.properties b/connector/src/main/resources/application.properties
index bec125dc..0b36b103 100644
--- a/connector/src/main/resources/application.properties
+++ b/connector/src/main/resources/application.properties
@@ -112,6 +112,16 @@ eidas.ms.auth.eIDAS.szrclient.eidasbind.mds.inject=false
#eidas.ms.auth.eIDAS.zmrclient.req.update.reason.code=PERS_AENDERN
#eidas.ms.auth.eIDAS.zmrclient.req.update.reason.text=KITT for eIDAS Matching
+# ERnP communication
+#eidas.ms.auth.eIDAS.ernpclient.endpoint=http://localhost:1718/demoernp
+#eidas.ms.auth.eIDAS.ernpclient.req.organisation.behoerdennr=jUnit123456
+#eidas.ms.auth.eIDAS.client.common.ssl.keyStore.type=jks
+#eidas.ms.auth.eIDAS.client.common.ssl.keyStore.path=../keystore/junit_test.jks
+#eidas.ms.auth.eIDAS.client.common.ssl.keyStore.password=password
+#eidas.ms.auth.eIDAS.client.common.ssl.key.alias=meta
+#eidas.ms.auth.eIDAS.client.common.ssl.key.password=password
+
+
#Raw eIDAS Id data storage
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/messages/eidas_connector_message.properties b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/messages/eidas_connector_message.properties
index 3ccfff19..188c5a8f 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/messages/eidas_connector_message.properties
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/messages/eidas_connector_message.properties
@@ -20,4 +20,8 @@ module.eidasauth.matching.02=Matching failed, because ZMR response contains hist
module.eidasauth.matching.03=Matching failed in workflow step: {0} with error: {1}
module.eidasauth.matching.04=An error occurred while loading your data from official registers. Please contact the support.
+module.eidasauth.matching.11=Matching failed, because of an ERnP communication error. Reason: {0}
+module.eidasauth.matching.12=Matching failed, because ERnP response contains historic information which is not supported.
+
module.eidasauth.matching.99=Matching failed, because of an unexpected processing error. Reason: {0}
+
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
index 0c6ec95d..028c0359 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
@@ -35,7 +35,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
@@ -49,6 +49,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import com.github.skjolber.mockito.soap.SoapServiceRule;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.ernp.ErnpRestClient.ErnpRegisterResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.ernp.IErnpClient;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.IZmrClient;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient.ZmrRegisterResult;
@@ -407,7 +408,10 @@ public class AlternativeSearchTaskWithRegisterTest {
when(zmrMock.service(zmrReq.capture(), any()))
.thenReturn(loadResponseFromFile("/data/zmr/seq_1-8_search_with_personalId_only_resp.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
-
+
+ Mockito.when(ernpClient.searchWithPersonIdentifier(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+
// execute task
TaskExecutionException exception = assertThrows(TaskExecutionException.class,
() -> task.execute(pendingReq, executionContext));
@@ -470,6 +474,13 @@ public class AlternativeSearchTaskWithRegisterTest {
.thenReturn(loadResponseFromFile("/data/zmr/seq_3-8_kitt_get_latest_version_resp.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
+ Mockito.when(ernpClient.searchWithPersonIdentifier(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.searchWithMds(any(), any(), any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.update(any(), any()))
+ .thenThrow(new IllegalStateException("ERnP update should not be neccessary"));
+
// execute task
task.execute(pendingReq, executionContext);
@@ -549,6 +560,15 @@ public class AlternativeSearchTaskWithRegisterTest {
.thenReturn(loadResponseFromFile("/data/zmr/seq_3-10_kitt_update_resp.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
+ Mockito.when(ernpClient.searchWithPersonIdentifier(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.searchCountrySpecific(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.searchWithMds(any(), any(), any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.update(any(), any()))
+ .thenThrow(new IllegalStateException("ERnP update should not be neccessary"));
+
// execute task
task.execute(pendingReq, executionContext);
@@ -636,6 +656,9 @@ public class AlternativeSearchTaskWithRegisterTest {
.thenReturn(loadResponseFromFile("/data/zmr/empty_zmr_result.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
+ Mockito.when(ernpClient.searchWithPersonIdentifier(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+
// execute task
task.execute(pendingReq, executionContext);
@@ -697,6 +720,13 @@ public class AlternativeSearchTaskWithRegisterTest {
.thenReturn(loadResponseFromFile("/data/zmr/search_with_personalId_only_resp_moreThanOne.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
+ Mockito.when(ernpClient.searchWithPersonIdentifier(any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.searchWithMds(any(), any(), any(), any()))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.update(any(), any()))
+ .thenThrow(new IllegalStateException("ERnP update should not be neccessary"));
+
// execute task
TaskExecutionException exception = assertThrows(TaskExecutionException.class,
() -> task.execute(pendingReq, executionContext));
@@ -769,6 +799,14 @@ public class AlternativeSearchTaskWithRegisterTest {
.thenReturn(loadResponseFromFile("/data/zmr/empty_zmr_result.xml"))
.thenThrow(new RuntimeException("This request is not needed any more"));
+ Mockito.when(ernpClient.searchWithPersonIdentifier("7cEYasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit", "DE"))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.searchWithMds("XXXKlaus - Maria", "XXXvon Brandenburg", "1994-12-31","DE"))
+ .thenReturn(emptyErnpRegisterResult());
+ Mockito.when(ernpClient.update(any(), any()))
+ .thenThrow(new IllegalStateException("ERnP update should not be neccessary"));
+
+
// execute task
task.execute(pendingReq, executionContext);
@@ -970,6 +1008,10 @@ public class AlternativeSearchTaskWithRegisterTest {
}
+ @NotNull
+ private ErnpRegisterResult emptyErnpRegisterResult() {
+ return new ErnpRegisterResult(Collections.emptyList());
+ }
}
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
index ea84c39c..565efe09 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
@@ -47,6 +47,7 @@ import javax.xml.namespace.QName;
import org.apache.commons.lang3.RandomStringUtils;
import org.jetbrains.annotations.NotNull;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -54,8 +55,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
@@ -103,6 +102,8 @@ import eu.eidas.auth.commons.attribute.PersonType;
import eu.eidas.auth.commons.light.impl.LightRequest;
import eu.eidas.auth.commons.protocol.impl.AuthenticationResponse;
import lombok.SneakyThrows;
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
@@ -119,14 +120,16 @@ public class InitialSearchTaskWithRegistersTest {
@Rule
public SoapServiceRule soap = SoapServiceRule.newInstance();
- @Mock private IErnpClient ernpClient;
-
- @Autowired private IZmrClient zmrClient;
- @Autowired private List<CountrySpecificDetailSearchProcessor> handlers;
+ @Autowired IErnpClient ernpClient;
+ @Autowired IZmrClient zmrClient;
+ @Autowired List<CountrySpecificDetailSearchProcessor> handlers;
+
private RegisterSearchService registerSearchService;
private ServicePort zmrMock = null;
+ private static MockWebServer mockWebServer;
+
private final ICcSpecificEidProcessingService eidPostProcessor = createEidPostProcessor();
private InitialSearchTask task;
@@ -144,13 +147,24 @@ public class InitialSearchTaskWithRegistersTest {
at.gv.bmi.namespace.zmr_su.zmr._20040201.ObjectFactory.class,
at.gv.bmi.namespace.zmr_su.gis._20070725.ObjectFactory.class,
at.gv.bmi.namespace.zmr_su.base._20040201.ObjectFactory.class);
+
+ mockWebServer = new MockWebServer();
+ mockWebServer.start(1718);
+
}
+ @AfterClass
+ @SneakyThrows
+ public static void resetTestEnviroment() {
+ mockWebServer.shutdown();
+
+ }
/**
* jUnit test set-up.
*/
@Before
+ @SneakyThrows
public void setUp() throws URISyntaxException, EaafStorageException {
if (zmrMock == null) {
zmrMock = soap.mock(ServicePort.class, "http://localhost:1234/demozmr");
@@ -167,6 +181,11 @@ public class InitialSearchTaskWithRegistersTest {
pendingReq = new TestRequestImpl();
+
+ mockWebServer.enqueue(new MockResponse().setResponseCode(200)
+ .setBody("{}")
+ .setHeader("Content-Type", "application/json;charset=utf-8"));
+
}
/**
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1.properties b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1.properties
index be716e95..d84777f3 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1.properties
+++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1.properties
@@ -8,9 +8,9 @@ eidas.ms.context.use.clustermode=true
eidas.ms.monitoring.eIDASNode.metadata.url=
-eidas.ms.client.http.connection.timeout.socket=1
-eidas.ms.client.http.connection.timeout.connection=1
-eidas.ms.client.http.connection.timeout.request=1
+eidas.ms.client.http.connection.timeout.socket=5
+eidas.ms.client.http.connection.timeout.connection=5
+eidas.ms.client.http.connection.timeout.request=5
##Specific logger configuration
@@ -100,6 +100,19 @@ eidas.ms.auth.eIDAS.zmrclient.req.organisation.behoerdennr=jUnit123456
eidas.ms.auth.eIDAS.zmrclient.req.update.reason.code=EIDAS-KITT
+
+# ERnP communication
+eidas.ms.auth.eIDAS.ernpclient.endpoint=http://localhost:1718/demoernp
+eidas.ms.auth.eIDAS.ernpclient.req.organisation.behoerdennr=jUnit123456
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.type=jks
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.path=../keystore/junit_test.jks
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.password=password
+eidas.ms.auth.eIDAS.client.common.ssl.key.alias=meta
+eidas.ms.auth.eIDAS.client.common.ssl.key.password=password
+
+
+
+#### SP End-Points #####
## PVP2 S-Profile end-point configuration
eidas.ms.pvp2.keystore.path=keys/.....
eidas.ms.pvp2.keystore.password=
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1_springboot.properties b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1_springboot.properties
index 224e1b1f..0cc89a4a 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1_springboot.properties
+++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/config/junit_config_1_springboot.properties
@@ -57,7 +57,18 @@ eidas.ms.auth.eIDAS.zmrclient.req.organisation.behoerdennr=jUnit123456
eidas.ms.auth.eIDAS.zmrclient.req.update.reason.code=EIDAS-KITT
eidas.ms.auth.eIDAS.zmrclient.req.update.reason.text=KITT for eIDAS Matching
+# ERnP communication
+eidas.ms.auth.eIDAS.ernpclient.endpoint=http://localhost:1718/demoernp
+eidas.ms.auth.eIDAS.ernpclient.req.organisation.behoerdennr=jUnit123456
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.type=jks
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.path=../keystore/junit_test.jks
+eidas.ms.auth.eIDAS.client.common.ssl.keyStore.password=password
+eidas.ms.auth.eIDAS.client.common.ssl.key.alias=meta
+eidas.ms.auth.eIDAS.client.common.ssl.key.password=password
+
+
+#### SP End-Points #####
## PVP2 S-Profile end-point configuration
eidas.ms.pvp2.keystore.type=jks
eidas.ms.pvp2.keystore.path=keys/junit.jks