aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorThomas <>2022-10-07 16:57:46 +0200
committerThomas <>2022-10-07 16:57:46 +0200
commit9da6640b1aa6ffd60866a6f34ea92f70ada1a3e6 (patch)
treea0149f4243265d677aada227fd70a97f81e7cb0b /modules
parent380edb1ba346d602a9208f9ba56c0f460e438038 (diff)
downloadNational_eIDAS_Gateway-9da6640b1aa6ffd60866a6f34ea92f70ada1a3e6.tar.gz
National_eIDAS_Gateway-9da6640b1aa6ffd60866a6f34ea92f70ada1a3e6.tar.bz2
National_eIDAS_Gateway-9da6640b1aa6ffd60866a6f34ea92f70ada1a3e6.zip
feat(matching): check ZMR and ERnP response if enities are closed
ZMR and ERnP always return the latest version of an entity. However, that latest version can also have status closed and in that case the entity is not valid any more.
Diffstat (limited to 'modules')
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java80
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java80
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java2
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java68
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientTest.java71
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java54
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java158
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_closed_entry_resp.json44
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_not_yet_closed_entry_resp.json44
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/5_search_with_mds_multi_with_closed_resp.json124
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry.xml291
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry_future.xml291
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_moreThanOne_closed_entity.xml641
13 files changed, 1921 insertions, 27 deletions
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
index a847a519..feb2853a 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
@@ -3,6 +3,7 @@ package at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.ernp;
import java.io.IOException;
import java.text.MessageFormat;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.util.Arrays;
import java.util.Collection;
@@ -417,30 +418,79 @@ public class ErnpRestClient implements IErnpClient {
"Find more-than-one ERnP entry with search criteria that has to be unique", true);
} else {
- return Arrays.asList(mapErnpResponseToRegisterResult(persons.get(0), citizenCountryCode));
+ RegisterResult activeResult = mapErnpResponseToRegisterResult(persons.get(0), citizenCountryCode);
+ if (activeResult == null) {
+ log.error("ERnP entry, which was selected by matching, looks already closed. "
+ + "Automated operations on closed entries not supported my matching");
+ throw new WorkflowException(processStepFiendlyname,
+ "ERnP entry, which was selected by matching, is not active any more.", true);
+
+ }
+
+ return Arrays.asList(activeResult);
}
}
- @Nonnull
+
+
+ /**
+ * Process a single Person data-set from ERnP.
+ *
+ * @param personEl Person data-set from ERnP
+ * @param citizenCountryCode Country-Code of the citizen
+ * @return Simplified register result, or <code>null</code> if the person data-set is not active anymore
+ * @throws EaafAuthenticationException In case of a validation error
+ */
+ @Nullable
private RegisterResult mapErnpResponseToRegisterResult(@Nonnull Person person,
@Nonnull String citizenCountryCode) {
- // build result
- return RegisterResult.builder()
- .pseudonym(selectAllEidasDocument(person, citizenCountryCode,
- EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
- .familyName(person.getPersonendaten().getFamilienname())
- .givenName(person.getPersonendaten().getVorname())
- .dateOfBirth(getTextualBirthday(person.getPersonendaten().getGeburtsdatum()))
- .bpk(person.getPersonendaten().getBpkZp())
- .placeOfBirth(selectSingleEidasDocument(person, citizenCountryCode,
- EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH))
- .birthName(selectSingleEidasDocument(person, citizenCountryCode,
- EidasConstants.eIDAS_ATTRURN_BIRTHNAME))
- .build();
+
+ if (checkIfPersonIsActive(person)) {
+ // build result
+ return RegisterResult.builder()
+ .pseudonym(selectAllEidasDocument(person, citizenCountryCode,
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
+ .familyName(person.getPersonendaten().getFamilienname())
+ .givenName(person.getPersonendaten().getVorname())
+ .dateOfBirth(getTextualBirthday(person.getPersonendaten().getGeburtsdatum()))
+ .bpk(person.getPersonendaten().getBpkZp())
+ .placeOfBirth(selectSingleEidasDocument(person, citizenCountryCode,
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH))
+ .birthName(selectSingleEidasDocument(person, citizenCountryCode,
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME))
+ .build();
+
+ } else {
+ log.debug("Entity is not valid anymore. Skip it ... ");
+ return null;
+
+ }
}
+ private boolean checkIfPersonIsActive(Person person) {
+ if (person.getGueltigBis() != null) {
+ LocalDateTime validTo = person.getGueltigBis().toLocalDateTime();
+ LocalDateTime now = LocalDateTime.now();
+ if (validTo.isBefore(now)) {
+ log.warn("Enity was valid to: {}, but now its: {}. Ignore that entry", validTo, now);
+ return false;
+
+ } else {
+ log.debug("Entity has a 'validTo' element, but it is in the future.");
+
+ }
+
+ } else {
+ log.trace("Entity has no 'validTo' element. Therefore it should be valid");
+
+ }
+
+ return true;
+ }
+
+
private Suchdaten mapCountrySpecificSearchData(PersonSuchenRequest personSearchDao) {
final Suchdaten searchInfos = new Suchdaten();
searchInfos.setFamilienname(personSearchDao.getNatuerlichePerson().getPersonenName().getFamilienname());
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
index 904afc37..444bd4e7 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
@@ -3,6 +3,7 @@ package at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr;
import java.math.BigInteger;
import java.net.URL;
import java.text.MessageFormat;
+import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -33,6 +34,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.ZmrCommunicati
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.VersionHolder;
import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201.ClientInfoType;
+import at.gv.bmi.namespace.zmr_su.base._20040201.EntityErgebnisReferenzType;
import at.gv.bmi.namespace.zmr_su.base._20040201.Organisation;
import at.gv.bmi.namespace.zmr_su.base._20040201.RequestType;
import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
@@ -78,6 +80,7 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
private static final String ERROR_MATCHING_01 = "module.eidasauth.matching.01";
private static final String ERROR_MATCHING_02 = "module.eidasauth.matching.02";
+ private static final String ERROR_MATCHING_04 = "module.eidasauth.matching.04";
private static final String ERROR_MATCHING_99 = "module.eidasauth.matching.99";
private static final String LOGMSG_MISSING_CONFIG = "Missing configuration with key: {0}";
@@ -556,29 +559,84 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
"Find more-than-one ZMR entry with search criteria that has to be unique", true);
} else {
- return Arrays.asList(processPersonResult(personErgebnisSatz.get(0), citizenCountryCode));
+ RegisterResult activeResult = processPersonResult(personErgebnisSatz.get(0), citizenCountryCode);
+ if (activeResult == null) {
+ log.error("ZMR entry, which was selected by matching, looks already closed. "
+ + "Automated operations on closed entries not supported my matching");
+ throw new WorkflowException(processStepFiendlyname,
+ "ZMR entry, which was selected by matching, is not active any more.", true);
+
+ }
+ return Arrays.asList(activeResult);
}
}
- @Nonnull
+ /**
+ * Process a single Person data-set from ZMR.
+ *
+ * @param personEl Person data-set from ZMR
+ * @param citizenCountryCode Country-Code of the citizen
+ * @return Simplified register result, or <code>null</code> if the person data-set is not active anymore
+ * @throws EaafAuthenticationException In case of a validation error
+ */
+ @Nullable
private RegisterResult processPersonResult(
@Nonnull PersonErgebnisSatzType personEl, @Nonnull String citizenCountryCode)
+ throws EaafAuthenticationException {
+ PersonErgebnisType latestPersonResult = extractLatestPersonResult(personEl);
+
+ // check if person was not closed already
+ if (checkIfPersonIsActive(latestPersonResult)) {
+ return mapZmrResponseToRegisterResult(latestPersonResult, citizenCountryCode);
+
+ } else {
+ log.debug("Entity is not valid anymore. Skip it ... ");
+ return null;
+
+ }
+ }
+
+ @Nonnull
+ private PersonErgebnisType extractLatestPersonResult(PersonErgebnisSatzType personEl)
throws EaafAuthenticationException {
// TODO: maybe check on 'null' if ERnP data is also allowed
- log.debug("Find #{} data sets in person information",
- personEl.getPersonendaten().getPersonErgebnis().size());
-
- if (personEl.getPersonendaten().getPersonErgebnis().size() > 1) {
- log.error("Find more than on PersoenErgebnis in Personendaten.");
+ log.debug("Find #{} data sets in person information", personEl.getPersonendaten().getPersonErgebnis().size());
+ if (personEl.getPersonendaten().getPersonErgebnis().size() == 0) {
+ log.error("Find no PersoenErgebnis in Personendaten from ZMR.");
+ throw new EaafAuthenticationException(ERROR_MATCHING_04, null);
+
+ } else if (personEl.getPersonendaten().getPersonErgebnis().size() > 1) {
+ log.error("Find more than on PersoenErgebnis in Personendaten from ZMR.");
+ //TODO: select latest entry in case of historic information
throw new EaafAuthenticationException(ERROR_MATCHING_02, null);
+ } else {
+ return personEl.getPersonendaten().getPersonErgebnis().get(0);
+
+ }
+ }
+
+ private boolean checkIfPersonIsActive(PersonErgebnisType latestPersonResult) {
+ EntityErgebnisReferenzType entityRef = latestPersonResult.getEntityErgebnisReferenz();
+ if (entityRef.getBis() != null) {
+ LocalDateTime validTo = entityRef.getBis().toGregorianCalendar().toZonedDateTime().toLocalDateTime();
+ LocalDateTime now = LocalDateTime.now();
+ if (validTo.isBefore(now)) {
+ log.warn("Enity was valid to: {}, but now its: {}. Ignore that entry", validTo, now);
+ return false;
+
+ } else {
+ log.debug("Entity has a 'validTo' element, but it is in the future.");
+
+ }
+
} else {
- return mapZmrResponseToRegisterResult(
- personEl.getPersonendaten().getPersonErgebnis().get(0), citizenCountryCode);
-
+ log.trace("Entity has no 'validTo' element. Therefore it should be valid");
+
}
-
+
+ return true;
}
@Nonnull
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
index 8716f80d..61d5ded2 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
@@ -253,7 +253,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
}
} else {
- log.debug("Map " + spConfig.getAreaSpecificTargetIdentifier() + " to 'PrivateSector'");
+ log.debug("Map {} to 'PrivateSector'", spConfig.getAreaSpecificTargetIdentifier());
authnRequestBuilder.spType(SpType.PRIVATE.getValue());
// TODO: switch to RequesterId in further version
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java
index 59cf4520..b834eb23 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java
@@ -436,6 +436,74 @@ public class ErnpRestClientProductionTest {
checkErnpResult(resp.getPersonResult().get(0), eidasDataFirst, 1);
}
+
+ @Test
+ @SneakyThrows
+ public void personWasWrongClosedByGovernment() {
+ final String personalIdentifierFirst = "eidasmatcherclosed19770707_01";
+ final String cc = "XZ";
+ final SimpleEidasData eidasDataFirst = SimpleEidasData.builder()
+ .citizenCountryCode(cc)
+ .familyName("EidasMatcher")
+ .givenName("Closed")
+ .dateOfBirth("1977-07-07")
+ .personalIdentifier(cc + "/AT/" + personalIdentifierFirst)
+ .pseudonym(personalIdentifierFirst)
+ .build();
+
+ // search with personalId
+ ErnpRegisterResult resp = client.searchWithPersonIdentifier(personalIdentifierFirst, cc);
+
+ // validate state
+ assertNotNull("no ERnP response", resp);
+ assertEquals("wrong resp size", 1, resp.getPersonResult().size());
+ //checkErnpResult(resp.getPersonResult().get(0), eidasDataFirst, 1);
+
+
+ // start update process
+ ErnpRegisterResult update = client.update(resp.getPersonResult().get(0), eidasDataFirst);
+
+ // validate state
+ assertNotNull("no ERnP response", update);
+ assertEquals("wrong resp size", 1, update.getPersonResult().size());
+ checkErnpResult(update.getPersonResult().get(0), eidasDataFirst, 1);
+
+ }
+
+
+ @Test
+ @SneakyThrows
+ public void personWasClosedByGovernment() {
+ final String personalIdentifierFirst = "eidasmatcherclosed19740404_01";
+ final String cc = "XZ";
+ final SimpleEidasData eidasDataFirst = SimpleEidasData.builder()
+ .citizenCountryCode(cc)
+ .familyName("EidasMatcher")
+ .givenName("Closed")
+ .dateOfBirth("1974-04-04")
+ .personalIdentifier(cc + "/AT/" + personalIdentifierFirst)
+ .pseudonym(personalIdentifierFirst)
+ .build();
+
+ // search with personalId
+ ErnpRegisterResult respPersonal = client.searchWithPersonIdentifier(personalIdentifierFirst, cc);
+
+ // search with mds
+ ErnpRegisterResult respMds = client.searchWithMds(eidasDataFirst.getGivenName(),
+ eidasDataFirst.getFamilyName(), eidasDataFirst.getDateOfBirth(), cc);
+
+
+ // validate state
+ assertNotNull("no ERnP response", respPersonal);
+ assertEquals("wrong resp size", 1, respPersonal.getPersonResult().size());
+ //checkErnpResult(resp.getPersonResult().get(0), eidasDataFirst, 1);
+
+
+ assertNotNull("no ERnP response", respMds);
+ assertEquals("wrong resp size", 1, respMds.getPersonResult().size());
+
+ }
+
@Test
@SneakyThrows
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientTest.java
index a9e10de6..9404b5a5 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientTest.java
@@ -296,6 +296,31 @@ public class ErnpRestClientTest {
@Test
@SneakyThrows
+ public void searchWithMdsMultiResultAndClosedEntry() {
+ final String cc = "CZ";
+ final SimpleEidasData eidasDataFirst = generateRandomEidasData(cc);
+
+ // set ERnP response
+ mockWebServer.enqueue(new MockResponse().setResponseCode(200)
+ .setBody(IOUtils.toString(
+ ErnpRestClientTest.class.getResourceAsStream("/data/ernp/5_search_with_mds_multi_with_closed_resp.json"),
+ "UTF-8"))
+ .setHeader("Content-Type", "application/json;charset=utf-8"));
+
+ // execute operation
+ ErnpRegisterResult resp = client.searchWithMds(eidasDataFirst.getGivenName(), eidasDataFirst.getFamilyName(), eidasDataFirst.getDateOfBirth(), cc);
+
+ // validate state
+ mockWebServer.takeRequest();
+ assertNotNull("no ERnP response", resp);
+ assertEquals("wrong resp size", 2, resp.getPersonResult().size());
+
+ }
+
+
+
+ @Test
+ @SneakyThrows
public void searchWithPersonalIdNoResponse() {
final String cc = "CZ";
final SimpleEidasData eidasDataFirst = generateRandomEidasData(cc);
@@ -366,6 +391,52 @@ public class ErnpRestClientTest {
@Test
@SneakyThrows
+ public void searchWithPersonalIdGetClosedEntry() {
+ final String cc = "XZ";
+ final SimpleEidasData eidasDataFirst = generateRandomEidasData(cc);
+
+ // set ERnP response
+ mockWebServer.enqueue(new MockResponse().setResponseCode(200)
+ .setBody(IOUtils.toString(
+ ErnpRestClientTest.class.getResourceAsStream(
+ "/data/ernp/1_search_with_personalId_closed_entry_resp.json"),
+ "UTF-8"))
+ .setHeader("Content-Type", "application/json;charset=utf-8"));
+
+ // execute operation
+ EidasSAuthenticationException error = assertThrows("wrong Exception", EidasSAuthenticationException.class,
+ () -> client.searchWithPersonIdentifier(eidasDataFirst.getPseudonym(), cc));
+ assertEquals("wrong errorCode", "module.eidasauth.matching.03", error.getErrorId());
+ mockWebServer.takeRequest();
+
+ }
+
+ @Test
+ @SneakyThrows
+ public void searchWithPersonalIdNotYetClosed() {
+ final String cc = "DE";
+ final SimpleEidasData eidasDataFirst = generateRandomEidasData(cc);
+
+ // set ERnP response
+ mockWebServer.enqueue(new MockResponse().setResponseCode(200)
+ .setBody(IOUtils.toString(
+ ErnpRestClientTest.class.getResourceAsStream(
+ "/data/ernp/1_search_with_personalId_not_yet_closed_entry_resp.json"),
+ "UTF-8"))
+ .setHeader("Content-Type", "application/json;charset=utf-8"));
+
+ // execute operation
+ ErnpRegisterResult resp = client.searchWithPersonIdentifier(eidasDataFirst.getPseudonym(), cc);
+
+ // validate state
+ mockWebServer.takeRequest();
+ assertNotNull("no ERnP response", resp);
+ assertEquals("wrong resp size", 1, resp.getPersonResult().size());
+
+ }
+
+ @Test
+ @SneakyThrows
public void searchWithPersonalIdSingleResult() {
final String cc = "DE";
final SimpleEidasData eidasDataFirst = generateRandomEidasData(cc);
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
index af1867e7..0e45cb61 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
@@ -21,6 +21,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient.ZmrRegisterResult;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.controller.AdresssucheController.AdresssucheOutput;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.LoggingHandler;
@@ -63,8 +64,45 @@ public class ZmrClientProductionTest {
}
+ @Test
+ public void searchWithMdsOnlyEidasData() throws EidasSAuthenticationException {
+
+ final ZmrRegisterResult result = client.searchWithMds(null,
+ "Ingun", "Walch", "1972-12-11",
+ "IT");
+
+ assertNotNull("ZMR response", result);
+ assertNotNull("ZMR processId", result.getProcessId());
+ assertNotNull("ZMR personResult", result.getPersonResult());
+ assertEquals("personResult size", 1, result.getPersonResult().size());
+
+ }
+
@Ignore
@Test
+ public void searchWithRecidenceEidasData() throws EidasSAuthenticationException {
+
+ AdresssucheOutput addressData = AdresssucheOutput.builder()
+// .postleitzahl("1200")
+// .street("Wallensteinstraße")
+// .number("52")
+ .postleitzahl("1200")
+ .street("Wallensteinstraße")
+ .number("52")
+ .build();
+
+ final ZmrRegisterResult result = client.searchWithResidenceData(
+ null, "Ingun", "Walch", "1972-12-11", "IT", addressData);
+
+ assertNotNull("ZMR response", result);
+ assertNotNull("ZMR processId", result.getProcessId());
+ assertNotNull("ZMR personResult", result.getPersonResult());
+ assertEquals("personResult size", 1, result.getPersonResult().size());
+
+ }
+
+
+ @Test
public void searchWithMdsOnly() throws EidasSAuthenticationException {
final ZmrRegisterResult result = client.searchWithMds(null,
@@ -78,6 +116,22 @@ public class ZmrClientProductionTest {
}
+ //@Ignore
+ @Test
+ public void searchWithPersonalIdentifier() throws EidasSAuthenticationException {
+
+ final ZmrRegisterResult result = client.searchWithPersonIdentifier(
+ null, "7cEYSvKZvon+V4CDVzNT4E7cjkU4Vq", "EE");
+
+ assertNotNull("ZMR response", result);
+ assertNotNull("ZMR processId", result.getProcessId());
+ assertNotNull("ZMR personResult", result.getPersonResult());
+ assertEquals("personResult size", 1, result.getPersonResult().size());
+
+ }
+
+
+
@Test
public void searchWithMdsOnlyTestIdentity() throws EidasSAuthenticationException {
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
index ef9cc9b7..1f0ddb02 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
@@ -235,6 +235,70 @@ public class ZmrClientTest {
}
+ @Test
+ @SneakyThrows
+ public void searchWithMdsWithClosedEntity() {
+ String familyName = RandomStringUtils.randomAlphabetic(10);
+ String givenName = RandomStringUtils.randomAlphabetic(10);
+ String dateOfBirth = RandomStringUtils.randomAlphabetic(10);
+ final String cc = "EE";
+
+ BigInteger processId = new BigInteger(RandomStringUtils.randomNumeric(6));
+
+ final ArgumentCaptor<RequestType> zmrReq = ArgumentCaptor.forClass(RequestType.class);
+
+ // inject response
+ when(zmrMock.service(zmrReq.capture(), any())).thenReturn(
+ loadResponseFromFile("/data/zmr/search_with_personalId_only_resp_moreThanOne_closed_entity.xml"));
+
+ // execute operation
+ ZmrRegisterResult resp = client.searchWithMds(processId,
+ givenName, familyName, dateOfBirth, cc);
+
+ // validate state
+ assertNotNull("no ZMR response", resp);
+ assertEquals("wrong processId", "367100000000080", resp.getProcessId().toString());
+ assertEquals("wrong resp size", 2, resp.getPersonResult().size());
+
+ // check first person
+ RegisterResult persInfo = resp.getPersonResult().get(0);
+ assertEquals("bPK", "9/MtsPZgBHQMBpQOD6aOY2TUqcY=", persInfo.getBpk());
+ assertEquals("dateOfBirth", "1983-06-04", persInfo.getDateOfBirth());
+ assertEquals("familyName", "XXXTüzekçi", persInfo.getFamilyName());
+ assertEquals("givenName", "XXXŐzgür", persInfo.getGivenName());
+ assertNull("placeOfBirth", persInfo.getPlaceOfBirth());
+ assertNull("birthName", persInfo.getBirthName());
+ assertEquals("num. stored eIDAS identifiers", 1, persInfo.getPseudonym().size());
+ assertEquals("stored eIDAS identifiers",
+ "aabbcc_should_not_be_included_for_DE", persInfo.getPseudonym().get(0));
+
+ // check second person
+ RegisterResult persInfo2 = resp.getPersonResult().get(1);
+ assertEquals("bPK", "UgeknNsc26lVuB7U/uYGVmWtnnA=", persInfo2.getBpk());
+ assertEquals("dateOfBirth", "1983-06-04", persInfo2.getDateOfBirth());
+ assertEquals("familyName", "XXXTüzekçi", persInfo2.getFamilyName());
+ assertEquals("givenName", "XXXŐzgür", persInfo2.getGivenName());
+ assertEquals("num. stored eIDAS identifiers", 1, persInfo2.getPseudonym().size());
+ assertEquals("stored eIDAS identifiers",
+ "7cEYSvKZasdfsafsaf4CDVzNT4E7cjkU4Vq_first", persInfo2.getPseudonym().get(0));
+
+ // validate request
+ assertEquals("wrong number of req.", 1, zmrReq.getAllValues().size());
+ assertNotNull("Personensuche req.", zmrReq.getValue().getPersonSuchenRequest());
+ checkBasicRequestParameters(zmrReq.getValue(), PROCESS_TASK_SEARCH, processId, "jUnit123456");
+ PersonSuchenRequest pSuche = zmrReq.getValue().getPersonSuchenRequest();
+ checkSearchParameters(pSuche.getPersonensucheInfo());
+
+ assertEquals("eidas Docs. size", 0, pSuche.getEidasSuchdaten().size());
+ assertNotNull("mds", pSuche.getNatuerlichePerson());
+
+ assertEquals("req. givenName", givenName, pSuche.getNatuerlichePerson().getPersonenName().getVorname());
+ assertEquals("req. familyName", familyName, pSuche.getNatuerlichePerson().getPersonenName().getFamilienname());
+ assertEquals("req. dateOfBirth", dateOfBirth, pSuche.getNatuerlichePerson().getGeburtsdatum());
+
+ }
+
+
//TODO: test does not throw the valid exception to catch the error that we like to test.
@Ignore
@Test
@@ -350,6 +414,58 @@ public class ZmrClientTest {
@Test
@SneakyThrows
+ public void searchWithPersonalIdentifierClosedEntry() {
+ final String personalIdentifierFirst = "7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit";
+ final String cc = "DE";
+
+ final ArgumentCaptor<RequestType> zmrReq = ArgumentCaptor.forClass(RequestType.class);
+
+ // inject response
+ when(zmrMock.service(zmrReq.capture(), any())).thenReturn(
+ loadResponseFromFile("/data/zmr/search_with_personalId_only_resp_closed_entry.xml"));
+
+ // execute operation
+ EidasSAuthenticationException error = assertThrows("wrong Exception", EidasSAuthenticationException.class,
+ () -> client.searchWithPersonIdentifier(null, personalIdentifierFirst, cc));
+
+ assertEquals("wrong errorCode", "module.eidasauth.matching.03", error.getErrorId());
+
+ }
+
+ @Test
+ @SneakyThrows
+ public void searchWithPersonalIdentifierNotYetClosed() {
+ final String personalIdentifierFirst = "7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit";
+ final String cc = "DE";
+ final SimpleEidasData eidasDataFirst = SimpleEidasData.builder()
+ .citizenCountryCode(cc)
+ .familyName("XXXvon Brandenburg")
+ .givenName("XXXClaus - Maria")
+ .dateOfBirth("1994-12-31")
+ .personalIdentifier(cc + "/AT/" + personalIdentifierFirst)
+ .pseudonym(personalIdentifierFirst)
+ .build();
+
+ BigInteger processId = new BigInteger(RandomStringUtils.randomNumeric(6));
+
+ final ArgumentCaptor<RequestType> zmrReq = ArgumentCaptor.forClass(RequestType.class);
+
+ // inject response
+ when(zmrMock.service(zmrReq.capture(), any())).thenReturn(
+ loadResponseFromFile("/data/zmr/search_with_personalId_only_resp_closed_entry_future.xml"));
+
+ // execute operation
+ ZmrRegisterResult resp = client.searchWithPersonIdentifier(processId,
+ eidasDataFirst.getPseudonym(), eidasDataFirst.getCitizenCountryCode());
+
+ // validate state
+ assertNotNull("no ZMR response", resp);
+ assertEquals("wrong resp size", 1, resp.getPersonResult().size());
+
+ }
+
+ @Test
+ @SneakyThrows
public void searchWithPersonalIdentifierSuccess() {
final String personalIdentifierFirst = "7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit";
final String cc = "DE";
@@ -765,6 +881,48 @@ public class ZmrClientTest {
}
+ @Test
+ @SneakyThrows
+ public void searchResidenceSuccessButClosedEntity() {
+ final String personalIdentifierFirst = "7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit";
+ final String cc = "DE";
+ final SimpleEidasData eidasDataFirst = SimpleEidasData.builder()
+ .citizenCountryCode(cc)
+ .familyName("XXXvon Brandenburg")
+ .givenName("XXXClaus - Maria")
+ .dateOfBirth("1994-12-31")
+ .personalIdentifier(cc + "/AT/" + personalIdentifierFirst)
+ .pseudonym(personalIdentifierFirst)
+ .build();
+
+ BigInteger processId = new BigInteger(RandomStringUtils.randomNumeric(6));
+
+ String familyName = RandomStringUtils.randomAlphabetic(10);
+ String givenName = RandomStringUtils.randomAlphabetic(10);
+ String dateOfBirth = RandomStringUtils.randomAlphabetic(10);
+ AdresssucheOutput addressInfo = AdresssucheOutput.builder()
+ .municipality(RandomStringUtils.randomAlphabetic(10))
+ .postleitzahl(RandomStringUtils.randomAlphabetic(10))
+ .build();
+
+ final ArgumentCaptor<RequestType> zmrReq = ArgumentCaptor.forClass(RequestType.class);
+
+ // inject response
+ when(zmrMock.service(zmrReq.capture(), any())).thenReturn(
+ loadResponseFromFile("/data/zmr/search_with_personalId_only_resp_closed_entry.xml"));
+
+ // execute operation
+ ZmrRegisterResult resp = client.searchWithResidenceData(processId,
+ givenName, familyName, dateOfBirth, cc, addressInfo);
+
+ // validate state
+ assertNotNull("no ZMR response", resp);
+ assertEquals("wrong processId", "367100000000079", resp.getProcessId().toString());
+
+ // we get zero results because address is found but entity was closed
+ assertEquals("wrong resp size", 0, resp.getPersonResult().size());
+
+ }
@Test
@SneakyThrows
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_closed_entry_resp.json b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_closed_entry_resp.json
new file mode 100644
index 00000000..c2f2d612
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_closed_entry_resp.json
@@ -0,0 +1,44 @@
+{
+ "person": [
+ {
+ "type": "Person",
+ "eidas": [
+ {
+ "ablaufDatum": "9999-12-31T00:00:00.000+01:00",
+ "art": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier",
+ "ausstellDatum": "9999-12-31T00:00:00.000+01:00",
+ "entityId": "47769100000077607",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "staatscode2": "XZ",
+ "wert": "eidasmatcherclosed19740404_01"
+ }
+ ],
+ "entityId": "47769100000077596",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "letzteOperation": {
+ "begruendung": "EIDAS Integrationstest",
+ "grund": "Person amtlich beenden",
+ "vorgang": "PersonAmtlichBeenden",
+ "zeitpunkt": "2022-10-06T08:01:18.117+02:00"
+ },
+ "personendaten": {
+ "basiszahl": "000862899079",
+ "bpkZp": "mhnWeYYC8KfRY/MaYKdUDkzwD2w=",
+ "entityId": "47769100000077596",
+ "familienname": "EidasMatcher",
+ "geburtsdatum": {
+ "jahr": 1974,
+ "monat": 4,
+ "tag": 4
+ },
+ "geprueft": false,
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "vorname": "Closed"
+ },
+ "version": "2022-10-06T08:01:18.117+02:00"
+ }
+ ]
+} \ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_not_yet_closed_entry_resp.json b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_not_yet_closed_entry_resp.json
new file mode 100644
index 00000000..fa58d048
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/1_search_with_personalId_not_yet_closed_entry_resp.json
@@ -0,0 +1,44 @@
+{
+ "person": [
+ {
+ "type": "Person",
+ "eidas": [
+ {
+ "ablaufDatum": "9999-12-31T00:00:00.000+01:00",
+ "art": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier",
+ "ausstellDatum": "9999-12-31T00:00:00.000+01:00",
+ "entityId": "47769100000077607",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "staatscode2": "XZ",
+ "wert": "eidasmatcherclosed19740404_01"
+ }
+ ],
+ "entityId": "47769100000077596",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2045-10-06T08:01:18.117+02:00",
+ "letzteOperation": {
+ "begruendung": "EIDAS Integrationstest",
+ "grund": "Person amtlich beenden",
+ "vorgang": "PersonAmtlichBeenden",
+ "zeitpunkt": "2022-10-06T08:01:18.117+02:00"
+ },
+ "personendaten": {
+ "basiszahl": "000862899079",
+ "bpkZp": "mhnWeYYC8KfRY/MaYKdUDkzwD2w=",
+ "entityId": "47769100000077596",
+ "familienname": "EidasMatcher",
+ "geburtsdatum": {
+ "jahr": 1974,
+ "monat": 4,
+ "tag": 4
+ },
+ "geprueft": false,
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "vorname": "Closed"
+ },
+ "version": "2022-10-06T08:01:18.117+02:00"
+ }
+ ]
+} \ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/5_search_with_mds_multi_with_closed_resp.json b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/5_search_with_mds_multi_with_closed_resp.json
new file mode 100644
index 00000000..7bf58798
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/5_search_with_mds_multi_with_closed_resp.json
@@ -0,0 +1,124 @@
+{
+ "person": [
+ {
+ "type": "Person",
+ "eidas": [
+ {
+ "ablaufDatum": "9999-12-31T00:00:00.000+01:00",
+ "art": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier",
+ "ausstellDatum": "9999-12-31T00:00:00.000+01:00",
+ "entityId": "1933000000000653",
+ "gueltigAb": "2022-03-03T11:27:57.651+01:00",
+ "staatscode2": "XZ",
+ "wert": "ybgLmbYGxU"
+ }
+ ],
+ "entityId": "1933000000000642",
+ "gueltigAb": "2022-03-03T11:27:57.651+01:00",
+ "letzteOperation": {
+ "begruendung": "Add new person",
+ "durchgefuehrtVon": {
+ "behoerdenkennzeichen": "380630",
+ "benutzer": "eidtapp@bmi.gv.at"
+ },
+ "vorgang": "PersonAnlegen",
+ "zeitpunkt": "2022-03-03T11:27:57.651+01:00"
+ },
+ "personendaten": {
+ "basiszahl": "000693812023",
+ "bpkZp": "QJ/5YLEbOCfRhG5R0KKHNnmeMYo=",
+ "entityId": "1933000000000642",
+ "familienname": "HjecFKGu",
+ "geburtsdatum": {
+ "jahr": 1996,
+ "monat": 1,
+ "tag": 1
+ },
+ "geprueft": false,
+ "gueltigAb": "2022-03-03T11:27:57.651+01:00",
+ "vorname": "QwnAMXsJ"
+ },
+ "version": "2022-03-03T11:27:57.651+01:00"
+ },
+ {
+ "type": "Person",
+ "eidas": [
+ {
+ "ablaufDatum": "9999-12-31T00:00:00.000+01:00",
+ "art": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier",
+ "ausstellDatum": "9999-12-31T00:00:00.000+01:00",
+ "entityId": "47769100000077607",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "staatscode2": "XZ",
+ "wert": "eidasmatcherclosed19740404_01"
+ }
+ ],
+ "entityId": "47769100000077596",
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "letzteOperation": {
+ "begruendung": "EIDAS Integrationstest",
+ "grund": "Person amtlich beenden",
+ "vorgang": "PersonAmtlichBeenden",
+ "zeitpunkt": "2022-10-06T08:01:18.117+02:00"
+ },
+ "personendaten": {
+ "basiszahl": "000862899079",
+ "bpkZp": "mhnWeYYC8KfRY/MaYKdUDkzwD2w=",
+ "entityId": "47769100000077596",
+ "familienname": "EidasMatcher",
+ "geburtsdatum": {
+ "jahr": 1974,
+ "monat": 4,
+ "tag": 4
+ },
+ "geprueft": false,
+ "gueltigAb": "2022-10-06T08:01:18.117+02:00",
+ "gueltigBis": "2022-10-06T08:01:18.117+02:00",
+ "vorname": "Closed"
+ },
+ "version": "2022-10-06T08:01:18.117+02:00"
+ },
+ {
+ "type": "Person",
+ "eidas": [
+ {
+ "ablaufDatum": "9999-12-31T00:00:00.000+01:00",
+ "art": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier",
+ "ausstellDatum": "9999-12-31T00:00:00.000+01:00",
+ "entityId": "1933100000000762",
+ "gueltigAb": "2022-03-03T11:27:57.885+01:00",
+ "staatscode2": "XZ",
+ "wert": "rEhBYWgiSx"
+ }
+ ],
+ "entityId": "1933100000000751",
+ "gueltigAb": "2022-03-03T11:27:57.885+01:00",
+ "letzteOperation": {
+ "begruendung": "Add new person",
+ "durchgefuehrtVon": {
+ "behoerdenkennzeichen": "380630",
+ "benutzer": "eidtapp@bmi.gv.at"
+ },
+ "vorgang": "PersonAnlegen",
+ "zeitpunkt": "2022-03-03T11:27:57.885+01:00"
+ },
+ "personendaten": {
+ "basiszahl": "000803465934",
+ "bpkZp": "ZaJ2Yvx0u/z8VqNyCJ8zKT8XQa0=",
+ "entityId": "1933100000000751",
+ "familienname": "HjecFKGu",
+ "geburtsdatum": {
+ "jahr": 1996,
+ "monat": 1,
+ "tag": 1
+ },
+ "geprueft": false,
+ "gueltigAb": "2022-03-03T11:27:57.885+01:00",
+ "vorname": "QwnAMXsJ"
+ },
+ "version": "2022-03-03T11:27:57.885+01:00"
+ }
+ ]
+}
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry.xml b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry.xml
new file mode 100644
index 00000000..0a9b9d32
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <base:Response xmlns="http://reference.e-government.gv.at/namespace/persondata/de/20040201#" xmlns:base="http://bmi.gv.at/namespace/zmr-su/base/20040201#" xmlns:zmr="http://bmi.gv.at/namespace/zmr-su/zmr/20040201#" xmlns:ns10="http://bmi.gv.at/namespace/zmr-su/ernp/20050901#" xmlns:ns11="http://bmi.gv.at/namespace/zmr-su/gis/20070725#" xmlns:ns12="http://egov.gv.at/pvp1.xsd" xmlns:ns13="http://schemas.xmlsoap.org/ws/2002/04/secext" xmlns:ns8="http://bmi.gv.at/namespace/zmr-su/lmr/20050401#" xmlns:ns9="http://www.w3.org/2000/09/xmldsig#">
+ <base:WorkflowInfoServer>
+ <base:ProzessName>GP_EIDAS</base:ProzessName>
+ <base:ProzessInstanzID>367100000000079</base:ProzessInstanzID>
+ <base:SequenzID>0</base:SequenzID>
+ </base:WorkflowInfoServer>
+ <base:ServerInfo>
+ <base:GeneriertVon>ZMR-Server Version: 5.9.0.0-SNAPSHOT</base:GeneriertVon>
+ <base:GeneriertAm>2021-11-12T08:24:40.985</base:GeneriertAm>
+ <base:ServerTransaktionNr>1877300000000139</base:ServerTransaktionNr>
+ </base:ServerInfo>
+ <zmr:PersonSuchenResponse>
+ <zmr:PersonensucheAnfrage>
+ <zmr:PersonensucheInfo>
+ <base:Bezugsfeld>Searching PersonIdentifier</base:Bezugsfeld>
+ <zmr:Suchkriterien>
+ <base:InclusivHistorie>true</base:InclusivHistorie>
+ <base:Formalisiert>false</base:Formalisiert>
+ </zmr:Suchkriterien>
+ <zmr:Ergebniskriterien>
+ <base:InclusivHistorie>false</base:InclusivHistorie>
+ </zmr:Ergebniskriterien>
+ <base:AnzahlSaetze>10</base:AnzahlSaetze>
+ </zmr:PersonensucheInfo>
+ <NatuerlichePerson/>
+ </zmr:PersonensucheAnfrage>
+ <base:Message>
+ <base:Number>5020</base:Number>
+ <base:Text>Person gefunden.</base:Text>
+ </base:Message>
+ <zmr:Personensuchergebnis>
+ <base:GefundeneSaetze>1</base:GefundeneSaetze>
+ <zmr:GefundeneSaetzeERnP>0</zmr:GefundeneSaetzeERnP>
+ <base:SaetzeVon>0</base:SaetzeVon>
+ <base:SaetzeBis>1</base:SaetzeBis>
+ <zmr:PersonErgebnisSatz>
+ <zmr:Personendaten>
+ <zmr:PersonErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000697</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>SONSTIGES</base:BeginnCode>
+ <base:BeginnText>Sonstiges</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:Bis>2020-02-05T13:07:06.311</base:Bis>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:ZMRZahl>000430320173</base:ZMRZahl>
+ <zmr:NatuerlichePerson>
+ <Identification>
+ <Value>UgeknNsc26lVuB7U/uYGVmWtnnA=</Value>
+ <Type>urn:publicid:gv.at:cdid+ZP</Type>
+ </Identification>
+ <zmr:PersonenName>
+ <Vorname>XXXClaus - Maria</Vorname>
+ <Familienname>XXXvon Brandenburg</Familienname>
+ </zmr:PersonenName>
+ <Familienstand>unbekannt</Familienstand>
+ <Geschlecht>männlich</Geschlecht>
+ <Geburtsdatum>1994-12-31</Geburtsdatum>
+ <Geburtsort>Wien</Geburtsort>
+ <Geburtsbundesland>Wien</Geburtsbundesland>
+ <Geburtsstaat>Österreich</Geburtsstaat>
+ <zmr:Staatsangehoerigkeit>
+ <ISOCode3>AUT</ISOCode3>
+ <StaatsnameDE>Österreich</StaatsnameDE>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000727</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>STAATSANGEH_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Staatsangehörigkeit anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ </zmr:Staatsangehoerigkeit>
+ </zmr:NatuerlichePerson>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000001</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/BirthName</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>XXXvon Heuburg</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000003</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>Hintergigritzpotschn</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>EE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>aabbcc_should_not_be_included_for_DE</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit_second_one</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ </zmr:PersonErgebnis>
+ </zmr:Personendaten>
+ <zmr:Meldedaten>
+ <zmr:MeldungErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005242</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>WSANM</base:BeginnCode>
+ <base:BeginnText>Wohnsitz anmelden</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:Wohnsitz>
+ <zmr:PostAdresse>
+ <Postleitzahl>0088</Postleitzahl>
+ <Gemeinde>Testgemeinde</Gemeinde>
+ <Gemeindekennziffer>09988</Gemeindekennziffer>
+ <Ortschaft>Testort A</Ortschaft>
+ <zmr:Zustelladresse>
+ <Strassenname>Testgasse</Strassenname>
+ <Orientierungsnummer>1a-2b</Orientierungsnummer>
+ <Gebaeude>Stg. 3c-4d</Gebaeude>
+ <Nutzungseinheit>5</Nutzungseinheit>
+ <Wohnsitzqualitaet>H</Wohnsitzqualitaet>
+ <Abgabestelle>false</Abgabestelle>
+ <Nutzungseinheitlaufnummer>0001</Nutzungseinheitlaufnummer>
+ <zmr:AdressRegisterEintrag>
+ <Adresscode>T800001</Adresscode>
+ <Subcode>001</Subcode>
+ <Objektnummer>T800001</Objektnummer>
+ </zmr:AdressRegisterEintrag>
+ </zmr:Zustelladresse>
+ </zmr:PostAdresse>
+ <base:Adressstatus>HST111WWW</base:Adressstatus>
+ <base:Adressschluessel>
+ <base:OKZ>T8001</base:OKZ>
+ <base:SKZ>T80001</base:SKZ>
+ <base:ADRRefkey>T80000000001</base:ADRRefkey>
+ <base:GBRRefkey>T80000000002</base:GBRRefkey>
+ </base:Adressschluessel>
+ <base:HauptIdent>H</base:HauptIdent>
+ <base:Postleitzahlgebiet>Testpostort</base:Postleitzahlgebiet>
+ </zmr:Wohnsitz>
+ <base:GemeldetVon>2020-02-05T13:07:06.311</base:GemeldetVon>
+ <base:PeriodeCode>WSANM</base:PeriodeCode>
+ <base:PeriodeText>Wohnsitz anmelden</base:PeriodeText>
+ <zmr:Auskunftssperre>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005262</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>AUSK_SPERRE_SETZ</base:BeginnCode>
+ <base:BeginnText>Auskunftssperre setzen</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:SperreVon>2020-02-05T13:07:06.311</zmr:SperreVon>
+ <zmr:SperreBis>9999-12-31T23:59:59.000</zmr:SperreBis>
+ <zmr:SperrCode>ASMG</zmr:SperrCode>
+ <zmr:SperrText>Auskunftssperre nach § 18 / 2ff MeldeG</zmr:SperrText>
+ <zmr:SperrFreitext>automatische Auskunftssperre</zmr:SperrFreitext>
+ </zmr:Auskunftssperre>
+ </zmr:MeldungErgebnis>
+ </zmr:Meldedaten>
+ </zmr:PersonErgebnisSatz>
+ </zmr:Personensuchergebnis>
+ </zmr:PersonSuchenResponse>
+ </base:Response>
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry_future.xml b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry_future.xml
new file mode 100644
index 00000000..b95b967e
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_closed_entry_future.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <base:Response xmlns="http://reference.e-government.gv.at/namespace/persondata/de/20040201#" xmlns:base="http://bmi.gv.at/namespace/zmr-su/base/20040201#" xmlns:zmr="http://bmi.gv.at/namespace/zmr-su/zmr/20040201#" xmlns:ns10="http://bmi.gv.at/namespace/zmr-su/ernp/20050901#" xmlns:ns11="http://bmi.gv.at/namespace/zmr-su/gis/20070725#" xmlns:ns12="http://egov.gv.at/pvp1.xsd" xmlns:ns13="http://schemas.xmlsoap.org/ws/2002/04/secext" xmlns:ns8="http://bmi.gv.at/namespace/zmr-su/lmr/20050401#" xmlns:ns9="http://www.w3.org/2000/09/xmldsig#">
+ <base:WorkflowInfoServer>
+ <base:ProzessName>GP_EIDAS</base:ProzessName>
+ <base:ProzessInstanzID>367100000000079</base:ProzessInstanzID>
+ <base:SequenzID>0</base:SequenzID>
+ </base:WorkflowInfoServer>
+ <base:ServerInfo>
+ <base:GeneriertVon>ZMR-Server Version: 5.9.0.0-SNAPSHOT</base:GeneriertVon>
+ <base:GeneriertAm>2021-11-12T08:24:40.985</base:GeneriertAm>
+ <base:ServerTransaktionNr>1877300000000139</base:ServerTransaktionNr>
+ </base:ServerInfo>
+ <zmr:PersonSuchenResponse>
+ <zmr:PersonensucheAnfrage>
+ <zmr:PersonensucheInfo>
+ <base:Bezugsfeld>Searching PersonIdentifier</base:Bezugsfeld>
+ <zmr:Suchkriterien>
+ <base:InclusivHistorie>true</base:InclusivHistorie>
+ <base:Formalisiert>false</base:Formalisiert>
+ </zmr:Suchkriterien>
+ <zmr:Ergebniskriterien>
+ <base:InclusivHistorie>false</base:InclusivHistorie>
+ </zmr:Ergebniskriterien>
+ <base:AnzahlSaetze>10</base:AnzahlSaetze>
+ </zmr:PersonensucheInfo>
+ <NatuerlichePerson/>
+ </zmr:PersonensucheAnfrage>
+ <base:Message>
+ <base:Number>5020</base:Number>
+ <base:Text>Person gefunden.</base:Text>
+ </base:Message>
+ <zmr:Personensuchergebnis>
+ <base:GefundeneSaetze>1</base:GefundeneSaetze>
+ <zmr:GefundeneSaetzeERnP>0</zmr:GefundeneSaetzeERnP>
+ <base:SaetzeVon>0</base:SaetzeVon>
+ <base:SaetzeBis>1</base:SaetzeBis>
+ <zmr:PersonErgebnisSatz>
+ <zmr:Personendaten>
+ <zmr:PersonErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000697</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>SONSTIGES</base:BeginnCode>
+ <base:BeginnText>Sonstiges</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:Bis>2046-02-05T13:07:06.311</base:Bis>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:ZMRZahl>000430320173</base:ZMRZahl>
+ <zmr:NatuerlichePerson>
+ <Identification>
+ <Value>UgeknNsc26lVuB7U/uYGVmWtnnA=</Value>
+ <Type>urn:publicid:gv.at:cdid+ZP</Type>
+ </Identification>
+ <zmr:PersonenName>
+ <Vorname>XXXClaus - Maria</Vorname>
+ <Familienname>XXXvon Brandenburg</Familienname>
+ </zmr:PersonenName>
+ <Familienstand>unbekannt</Familienstand>
+ <Geschlecht>männlich</Geschlecht>
+ <Geburtsdatum>1994-12-31</Geburtsdatum>
+ <Geburtsort>Wien</Geburtsort>
+ <Geburtsbundesland>Wien</Geburtsbundesland>
+ <Geburtsstaat>Österreich</Geburtsstaat>
+ <zmr:Staatsangehoerigkeit>
+ <ISOCode3>AUT</ISOCode3>
+ <StaatsnameDE>Österreich</StaatsnameDE>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000727</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>STAATSANGEH_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Staatsangehörigkeit anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ </zmr:Staatsangehoerigkeit>
+ </zmr:NatuerlichePerson>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000001</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/BirthName</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>XXXvon Heuburg</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000003</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>Hintergigritzpotschn</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>EE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>aabbcc_should_not_be_included_for_DE</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit_second_one</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ </zmr:PersonErgebnis>
+ </zmr:Personendaten>
+ <zmr:Meldedaten>
+ <zmr:MeldungErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005242</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>WSANM</base:BeginnCode>
+ <base:BeginnText>Wohnsitz anmelden</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:Wohnsitz>
+ <zmr:PostAdresse>
+ <Postleitzahl>0088</Postleitzahl>
+ <Gemeinde>Testgemeinde</Gemeinde>
+ <Gemeindekennziffer>09988</Gemeindekennziffer>
+ <Ortschaft>Testort A</Ortschaft>
+ <zmr:Zustelladresse>
+ <Strassenname>Testgasse</Strassenname>
+ <Orientierungsnummer>1a-2b</Orientierungsnummer>
+ <Gebaeude>Stg. 3c-4d</Gebaeude>
+ <Nutzungseinheit>5</Nutzungseinheit>
+ <Wohnsitzqualitaet>H</Wohnsitzqualitaet>
+ <Abgabestelle>false</Abgabestelle>
+ <Nutzungseinheitlaufnummer>0001</Nutzungseinheitlaufnummer>
+ <zmr:AdressRegisterEintrag>
+ <Adresscode>T800001</Adresscode>
+ <Subcode>001</Subcode>
+ <Objektnummer>T800001</Objektnummer>
+ </zmr:AdressRegisterEintrag>
+ </zmr:Zustelladresse>
+ </zmr:PostAdresse>
+ <base:Adressstatus>HST111WWW</base:Adressstatus>
+ <base:Adressschluessel>
+ <base:OKZ>T8001</base:OKZ>
+ <base:SKZ>T80001</base:SKZ>
+ <base:ADRRefkey>T80000000001</base:ADRRefkey>
+ <base:GBRRefkey>T80000000002</base:GBRRefkey>
+ </base:Adressschluessel>
+ <base:HauptIdent>H</base:HauptIdent>
+ <base:Postleitzahlgebiet>Testpostort</base:Postleitzahlgebiet>
+ </zmr:Wohnsitz>
+ <base:GemeldetVon>2020-02-05T13:07:06.311</base:GemeldetVon>
+ <base:PeriodeCode>WSANM</base:PeriodeCode>
+ <base:PeriodeText>Wohnsitz anmelden</base:PeriodeText>
+ <zmr:Auskunftssperre>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005262</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>AUSK_SPERRE_SETZ</base:BeginnCode>
+ <base:BeginnText>Auskunftssperre setzen</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:SperreVon>2020-02-05T13:07:06.311</zmr:SperreVon>
+ <zmr:SperreBis>9999-12-31T23:59:59.000</zmr:SperreBis>
+ <zmr:SperrCode>ASMG</zmr:SperrCode>
+ <zmr:SperrText>Auskunftssperre nach § 18 / 2ff MeldeG</zmr:SperrText>
+ <zmr:SperrFreitext>automatische Auskunftssperre</zmr:SperrFreitext>
+ </zmr:Auskunftssperre>
+ </zmr:MeldungErgebnis>
+ </zmr:Meldedaten>
+ </zmr:PersonErgebnisSatz>
+ </zmr:Personensuchergebnis>
+ </zmr:PersonSuchenResponse>
+ </base:Response>
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_moreThanOne_closed_entity.xml b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_moreThanOne_closed_entity.xml
new file mode 100644
index 00000000..010fb5c1
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/zmr/search_with_personalId_only_resp_moreThanOne_closed_entity.xml
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <base:Response xmlns="http://reference.e-government.gv.at/namespace/persondata/de/20040201#" xmlns:base="http://bmi.gv.at/namespace/zmr-su/base/20040201#" xmlns:zmr="http://bmi.gv.at/namespace/zmr-su/zmr/20040201#" xmlns:ns10="http://bmi.gv.at/namespace/zmr-su/ernp/20050901#" xmlns:ns11="http://bmi.gv.at/namespace/zmr-su/gis/20070725#" xmlns:ns12="http://egov.gv.at/pvp1.xsd" xmlns:ns13="http://schemas.xmlsoap.org/ws/2002/04/secext" xmlns:ns8="http://bmi.gv.at/namespace/zmr-su/lmr/20050401#" xmlns:ns9="http://www.w3.org/2000/09/xmldsig#">
+ <base:WorkflowInfoServer>
+ <base:ProzessName>GP_EIDAS</base:ProzessName>
+ <base:ProzessInstanzID>367100000000080</base:ProzessInstanzID>
+ <base:SequenzID>0</base:SequenzID>
+ </base:WorkflowInfoServer>
+ <base:ServerInfo>
+ <base:GeneriertVon>ZMR-Server Version: 5.9.0.0-SNAPSHOT</base:GeneriertVon>
+ <base:GeneriertAm>2021-11-12T08:24:40.985</base:GeneriertAm>
+ <base:ServerTransaktionNr>1877300000000139</base:ServerTransaktionNr>
+ </base:ServerInfo>
+ <zmr:PersonSuchenResponse>
+ <zmr:PersonensucheAnfrage>
+ <zmr:PersonensucheInfo>
+ <base:Bezugsfeld>Searching PersonIdentifier</base:Bezugsfeld>
+ <zmr:Suchkriterien>
+ <base:InclusivHistorie>true</base:InclusivHistorie>
+ <base:Formalisiert>false</base:Formalisiert>
+ </zmr:Suchkriterien>
+ <zmr:Ergebniskriterien>
+ <base:InclusivHistorie>false</base:InclusivHistorie>
+ </zmr:Ergebniskriterien>
+ <base:AnzahlSaetze>10</base:AnzahlSaetze>
+ </zmr:PersonensucheInfo>
+ <NatuerlichePerson/>
+ </zmr:PersonensucheAnfrage>
+ <base:Message>
+ <base:Number>5020</base:Number>
+ <base:Text>Person gefunden.</base:Text>
+ </base:Message>
+ <zmr:Personensuchergebnis>
+ <base:GefundeneSaetze>2</base:GefundeneSaetze>
+ <zmr:GefundeneSaetzeERnP>0</zmr:GefundeneSaetzeERnP>
+ <base:SaetzeVon>0</base:SaetzeVon>
+ <base:SaetzeBis>1</base:SaetzeBis>
+ <zmr:PersonErgebnisSatz>
+ <zmr:Personendaten>
+ <zmr:PersonErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000697</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>SONSTIGES</base:BeginnCode>
+ <base:BeginnText>Sonstiges</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:ZMRZahl>000430320173</base:ZMRZahl>
+ <zmr:NatuerlichePerson>
+ <Identification>
+ <Value>9/MtsPZgBHQMBpQOD6aOY2TUqcY=</Value>
+ <Type>urn:publicid:gv.at:cdid+ZP</Type>
+ </Identification>
+ <zmr:PersonenName>
+ <Vorname>XXXŐzgür</Vorname>
+ <Familienname>XXXTüzekçi</Familienname>
+ </zmr:PersonenName>
+ <Familienstand>unbekannt</Familienstand>
+ <Geschlecht>männlich</Geschlecht>
+ <Geburtsdatum>1983-06-04</Geburtsdatum>
+ <Geburtsort>Wien</Geburtsort>
+ <Geburtsbundesland>Wien</Geburtsbundesland>
+ <Geburtsstaat>Österreich</Geburtsstaat>
+ <zmr:Staatsangehoerigkeit>
+ <ISOCode3>AUT</ISOCode3>
+ <StaatsnameDE>Österreich</StaatsnameDE>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453600000000727</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>STAATSANGEH_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Staatsangehörigkeit anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testerperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ </zmr:Staatsangehoerigkeit>
+ </zmr:NatuerlichePerson>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000001</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/BirthName</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>XXXvon Heuburg</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000003</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>Hintergigritzpotschn</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>EE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>aabbcc_should_not_be_included_for_DE</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1879000000000005</base:EntityID>
+ <base:LetzteAenderung>2021-11-12T08:24:39.695</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-11-12T08:24:39.695</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>DE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit_second_one</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ </zmr:PersonErgebnis>
+ </zmr:Personendaten>
+ <zmr:Meldedaten>
+ <zmr:MeldungErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005242</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>WSANM</base:BeginnCode>
+ <base:BeginnText>Wohnsitz anmelden</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:Wohnsitz>
+ <zmr:PostAdresse>
+ <Postleitzahl>0088</Postleitzahl>
+ <Gemeinde>Testgemeinde</Gemeinde>
+ <Gemeindekennziffer>09988</Gemeindekennziffer>
+ <Ortschaft>Testort A</Ortschaft>
+ <zmr:Zustelladresse>
+ <Strassenname>Testgasse</Strassenname>
+ <Orientierungsnummer>1a-2b</Orientierungsnummer>
+ <Gebaeude>Stg. 3c-4d</Gebaeude>
+ <Nutzungseinheit>5</Nutzungseinheit>
+ <Wohnsitzqualitaet>H</Wohnsitzqualitaet>
+ <Abgabestelle>false</Abgabestelle>
+ <Nutzungseinheitlaufnummer>0001</Nutzungseinheitlaufnummer>
+ <zmr:AdressRegisterEintrag>
+ <Adresscode>T800001</Adresscode>
+ <Subcode>001</Subcode>
+ <Objektnummer>T800001</Objektnummer>
+ </zmr:AdressRegisterEintrag>
+ </zmr:Zustelladresse>
+ </zmr:PostAdresse>
+ <base:Adressstatus>HST111WWW</base:Adressstatus>
+ <base:Adressschluessel>
+ <base:OKZ>T8001</base:OKZ>
+ <base:SKZ>T80001</base:SKZ>
+ <base:ADRRefkey>T80000000001</base:ADRRefkey>
+ <base:GBRRefkey>T80000000002</base:GBRRefkey>
+ </base:Adressschluessel>
+ <base:HauptIdent>H</base:HauptIdent>
+ <base:Postleitzahlgebiet>Testpostort</base:Postleitzahlgebiet>
+ </zmr:Wohnsitz>
+ <base:GemeldetVon>2020-02-05T13:07:06.311</base:GemeldetVon>
+ <base:PeriodeCode>WSANM</base:PeriodeCode>
+ <base:PeriodeText>Wohnsitz anmelden</base:PeriodeText>
+ <zmr:Auskunftssperre>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453500000005262</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:07:06.311</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:07:06.311</base:Von>
+ <base:BeginnCode>AUSK_SPERRE_SETZ</base:BeginnCode>
+ <base:BeginnText>Auskunftssperre setzen</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:SperreVon>2020-02-05T13:07:06.311</zmr:SperreVon>
+ <zmr:SperreBis>9999-12-31T23:59:59.000</zmr:SperreBis>
+ <zmr:SperrCode>ASMG</zmr:SperrCode>
+ <zmr:SperrText>Auskunftssperre nach § 18 / 2ff MeldeG</zmr:SperrText>
+ <zmr:SperrFreitext>automatische Auskunftssperre</zmr:SperrFreitext>
+ </zmr:Auskunftssperre>
+ </zmr:MeldungErgebnis>
+ </zmr:Meldedaten>
+ </zmr:PersonErgebnisSatz>
+ <zmr:PersonErgebnisSatz>
+ <zmr:Personendaten>
+ <zmr:PersonErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2021-10-21T13:07:39.000</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000811</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>SONSTIGES</base:BeginnCode>
+ <base:BeginnText>Sonstiges</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:ZMRZahl>000648035760</base:ZMRZahl>
+ <zmr:NatuerlichePerson>
+ <Identification>
+ <Value>UgeknNsc26lVuB7U/uYGVmWtnnA=</Value>
+ <Type>urn:publicid:gv.at:cdid+ZP</Type>
+ </Identification>
+ <zmr:PersonenName>
+ <Vorname>XXXŐzgür</Vorname>
+ <Familienname>XXXTüzekçi</Familienname>
+ </zmr:PersonenName>
+ <Familienstand>unbekannt</Familienstand>
+ <Geschlecht>weiblich</Geschlecht>
+ <Geburtsdatum>1983-06-04</Geburtsdatum>
+ <Geburtsort>Wien</Geburtsort>
+ <Geburtsbundesland>Wien</Geburtsbundesland>
+ <Geburtsstaat>Österreich</Geburtsstaat>
+ <zmr:Staatsangehoerigkeit>
+ <ISOCode3>TUR</ISOCode3>
+ <StaatsnameDE>Türkei</StaatsnameDE>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000841</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>STAATSANGEH_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Staatsangehörigkeit anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ </zmr:Staatsangehoerigkeit>
+ </zmr:NatuerlichePerson>
+ <zmr:Reisedokument>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000855</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>REISEDOK_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Reisedokument anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:DokumentArt>FREMDEROA</base:DokumentArt>
+ </zmr:Reisedokument>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1867900000000716</base:EntityID>
+ <base:LetzteAenderung>2021-10-21T13:07:38.065</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-10-21T13:07:38.065</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>EE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYSvKZasdfsafsaf4CDVzNT4E7cjkU4Vq_first</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ </zmr:PersonErgebnis>
+ </zmr:Personendaten>
+ <zmr:Meldedaten>
+ <zmr:MeldungErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453900000006913</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>WSANM</base:BeginnCode>
+ <base:BeginnText>Wohnsitz anmelden</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:Wohnsitz>
+ <zmr:PostAdresse>
+ <Postleitzahl>0088</Postleitzahl>
+ <Gemeinde>Testgemeinde</Gemeinde>
+ <Gemeindekennziffer>09988</Gemeindekennziffer>
+ <Ortschaft>Testort A</Ortschaft>
+ <zmr:Zustelladresse>
+ <Strassenname>Testgasse</Strassenname>
+ <Orientierungsnummer>1a-2b</Orientierungsnummer>
+ <Gebaeude>Stg. 3c-4d</Gebaeude>
+ <Wohnsitzqualitaet>H</Wohnsitzqualitaet>
+ <Abgabestelle>false</Abgabestelle>
+ <zmr:AdressRegisterEintrag>
+ <Adresscode>T800001</Adresscode>
+ <Subcode>001</Subcode>
+ <Objektnummer>T800001</Objektnummer>
+ </zmr:AdressRegisterEintrag>
+ </zmr:Zustelladresse>
+ </zmr:PostAdresse>
+ <base:Adressstatus>HSX11XWWX</base:Adressstatus>
+ <base:Adressschluessel>
+ <base:OKZ>T8001</base:OKZ>
+ <base:SKZ>T80001</base:SKZ>
+ <base:ADRRefkey>T80000000001</base:ADRRefkey>
+ <base:GBRRefkey>T80000000002</base:GBRRefkey>
+ </base:Adressschluessel>
+ <base:HauptIdent>H</base:HauptIdent>
+ <base:Postleitzahlgebiet>Testpostort</base:Postleitzahlgebiet>
+ </zmr:Wohnsitz>
+ <base:GemeldetVon>2020-02-05T13:45:52.563</base:GemeldetVon>
+ <base:PeriodeCode>WSANM</base:PeriodeCode>
+ <base:PeriodeText>Wohnsitz anmelden</base:PeriodeText>
+ <zmr:Auskunftssperre>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453900000006933</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>AUSK_SPERRE_SETZ</base:BeginnCode>
+ <base:BeginnText>Auskunftssperre setzen</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:SperreVon>2020-02-05T13:45:52.563</zmr:SperreVon>
+ <zmr:SperreBis>9999-12-31T23:59:59.000</zmr:SperreBis>
+ <zmr:SperrCode>ASMG</zmr:SperrCode>
+ <zmr:SperrText>Auskunftssperre nach § 18 / 2ff MeldeG</zmr:SperrText>
+ <zmr:SperrFreitext>automatische Auskunftssperre</zmr:SperrFreitext>
+ </zmr:Auskunftssperre>
+ </zmr:MeldungErgebnis>
+ </zmr:Meldedaten>
+ </zmr:PersonErgebnisSatz>
+ <zmr:PersonErgebnisSatz>
+ <zmr:Personendaten>
+ <zmr:PersonErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2021-10-21T13:07:39.000</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000811</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>SONSTIGES</base:BeginnCode>
+ <base:BeginnText>Sonstiges</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:Bis>2020-02-05T13:45:52.563</base:Bis>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:ZMRZahl>000648035760</base:ZMRZahl>
+ <zmr:NatuerlichePerson>
+ <Identification>
+ <Value>UgeknNsc26lVuB7U/uYGVmWtnnB=</Value>
+ <Type>urn:publicid:gv.at:cdid+ZP</Type>
+ </Identification>
+ <zmr:PersonenName>
+ <Vorname>XXXŐzgür</Vorname>
+ <Familienname>XXXTüzekçi</Familienname>
+ </zmr:PersonenName>
+ <Familienstand>unbekannt</Familienstand>
+ <Geschlecht>weiblich</Geschlecht>
+ <Geburtsdatum>1983-06-04</Geburtsdatum>
+ <Geburtsort>Wien</Geburtsort>
+ <Geburtsbundesland>Wien</Geburtsbundesland>
+ <Geburtsstaat>Österreich</Geburtsstaat>
+ <zmr:Staatsangehoerigkeit>
+ <ISOCode3>TUR</ISOCode3>
+ <StaatsnameDE>Türkei</StaatsnameDE>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000841</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>STAATSANGEH_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Staatsangehörigkeit anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ </zmr:Staatsangehoerigkeit>
+ </zmr:NatuerlichePerson>
+ <zmr:Reisedokument>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44454000000000855</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>REISEDOK_ANLEGEN</base:BeginnCode>
+ <base:BeginnText>Reisedokument anlegen</base:BeginnText>
+ <base:BeginnFreitext>Testperson</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <base:DokumentArt>FREMDEROA</base:DokumentArt>
+ </zmr:Reisedokument>
+ <zmr:EidasIdentitaet>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>1867900000000716</base:EntityID>
+ <base:LetzteAenderung>2021-10-21T13:07:38.065</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2021-10-21T13:07:38.065</base:Von>
+ <base:BeginnCode>EIDAS_ANLEGEN</base:BeginnCode>
+ <base:BeginnFreitext>KITT for eIDAS Matching</base:BeginnFreitext>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>101179</base:Behoerdenschluessel>
+ </base:Organisation>
+ <base:Benutzer>eidtapp@bmi.gv.at</base:Benutzer>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:EidasArt>http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier</zmr:EidasArt>
+ <zmr:Staatscode2>EE</zmr:Staatscode2>
+ <base:AusstellBehoerde/>
+ <zmr:EidasWert>7cEYSvKZasdfsafsaf4CDasdfVzNT4E7cjkU4Vq_first</zmr:EidasWert>
+ <base:AusstellDatum>9999-12-31</base:AusstellDatum>
+ <base:AblaufDatum>9999-12-31</base:AblaufDatum>
+ </zmr:EidasIdentitaet>
+ </zmr:PersonErgebnis>
+ </zmr:Personendaten>
+ <zmr:Meldedaten>
+ <zmr:MeldungErgebnis>
+ <base:ErgebnissatzInfo>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:ErgebnissatzInfo>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453900000006913</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>WSANM</base:BeginnCode>
+ <base:BeginnText>Wohnsitz anmelden</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:Wohnsitz>
+ <zmr:PostAdresse>
+ <Postleitzahl>0088</Postleitzahl>
+ <Gemeinde>Testgemeinde</Gemeinde>
+ <Gemeindekennziffer>09988</Gemeindekennziffer>
+ <Ortschaft>Testort A</Ortschaft>
+ <zmr:Zustelladresse>
+ <Strassenname>Testgasse</Strassenname>
+ <Orientierungsnummer>1a-2b</Orientierungsnummer>
+ <Gebaeude>Stg. 3c-4d</Gebaeude>
+ <Wohnsitzqualitaet>H</Wohnsitzqualitaet>
+ <Abgabestelle>false</Abgabestelle>
+ <zmr:AdressRegisterEintrag>
+ <Adresscode>T800001</Adresscode>
+ <Subcode>001</Subcode>
+ <Objektnummer>T800001</Objektnummer>
+ </zmr:AdressRegisterEintrag>
+ </zmr:Zustelladresse>
+ </zmr:PostAdresse>
+ <base:Adressstatus>HSX11XWWX</base:Adressstatus>
+ <base:Adressschluessel>
+ <base:OKZ>T8001</base:OKZ>
+ <base:SKZ>T80001</base:SKZ>
+ <base:ADRRefkey>T80000000001</base:ADRRefkey>
+ <base:GBRRefkey>T80000000002</base:GBRRefkey>
+ </base:Adressschluessel>
+ <base:HauptIdent>H</base:HauptIdent>
+ <base:Postleitzahlgebiet>Testpostort</base:Postleitzahlgebiet>
+ </zmr:Wohnsitz>
+ <base:GemeldetVon>2020-02-05T13:45:52.563</base:GemeldetVon>
+ <base:PeriodeCode>WSANM</base:PeriodeCode>
+ <base:PeriodeText>Wohnsitz anmelden</base:PeriodeText>
+ <zmr:Auskunftssperre>
+ <base:EntityErgebnisReferenz>
+ <base:Technisch>
+ <base:EntityID>44453900000006933</base:EntityID>
+ <base:LetzteAenderung>2020-02-05T13:45:52.563</base:LetzteAenderung>
+ </base:Technisch>
+ <base:Von>2020-02-05T13:45:52.563</base:Von>
+ <base:BeginnCode>AUSK_SPERRE_SETZ</base:BeginnCode>
+ <base:BeginnText>Auskunftssperre setzen</base:BeginnText>
+ <base:DurchgefuehrtVon>
+ <base:Organisation>
+ <base:Behoerdenschluessel>109091</base:Behoerdenschluessel>
+ </base:Organisation>
+ </base:DurchgefuehrtVon>
+ </base:EntityErgebnisReferenz>
+ <zmr:SperreVon>2020-02-05T13:45:52.563</zmr:SperreVon>
+ <zmr:SperreBis>9999-12-31T23:59:59.000</zmr:SperreBis>
+ <zmr:SperrCode>ASMG</zmr:SperrCode>
+ <zmr:SperrText>Auskunftssperre nach § 18 / 2ff MeldeG</zmr:SperrText>
+ <zmr:SperrFreitext>automatische Auskunftssperre</zmr:SperrFreitext>
+ </zmr:Auskunftssperre>
+ </zmr:MeldungErgebnis>
+ </zmr:Meldedaten>
+ </zmr:PersonErgebnisSatz>
+ </zmr:Personensuchergebnis>
+ </zmr:PersonSuchenResponse>
+ </base:Response>