aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2023-06-07 08:58:57 +0200
committerThomas <>2023-06-07 08:58:57 +0200
commit11520da12531f7484bc716f6c6284f65d4e5c201 (patch)
tree82db4cf22a40b6b2130974b08ecfae1f24bbcc6b
parenta2b1df739eefaa4babd7f67f905a18127135b94d (diff)
downloadNational_eIDAS_Gateway-11520da12531f7484bc716f6c6284f65d4e5c201.tar.gz
National_eIDAS_Gateway-11520da12531f7484bc716f6c6284f65d4e5c201.tar.bz2
National_eIDAS_Gateway-11520da12531f7484bc716f6c6284f65d4e5c201.zip
feat(ernp): switch to new ERnP REST API v2.0.3(2023) that implements "Meldegesetznovelle 2023)
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java7
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java36
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/resources/wsdl/ernp_client/openapi.json517
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ErnpRestClientProductionTest.java1
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/ernp_handbook_example.json40
-rw-r--r--ms_specific_connector/src/main/resources/application.properties7
6 files changed, 555 insertions, 53 deletions
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
index 5468cd56..778739e2 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
@@ -215,15 +215,18 @@ public class Constants {
+ ".ssl.trustStore.name";
-
public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_TIMEOUT_CONNECTION = CONIG_PROPS_EIDAS_ERNPCLIENT
+ ".timeout.connection";
public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_TIMEOUT_RESPONSE = CONIG_PROPS_EIDAS_ERNPCLIENT
+ ".timeout.response";
public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_REQ_ORGANIZATION_NR = CONIG_PROPS_EIDAS_ERNPCLIENT
+ ".req.organisation.behoerdennr";
+ public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_API_ADDPERSON_GENDER = CONIG_PROPS_EIDAS_ERNPCLIENT
+ + ".api.person.add.gender";
+ public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_NEW_API_FEATURES = CONIG_PROPS_EIDAS_ERNPCLIENT
+ + ".api.features.2023";
-
+
// SZR Client configuration properties
public static final String CONIG_PROPS_EIDAS_SZRCLIENT =
EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".szrclient";
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 bbb245f1..a64671ec 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
@@ -44,6 +44,7 @@ import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.google.common.collect.Lists;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.ErnpPersonRegisterResult;
@@ -134,6 +135,9 @@ public class ErnpRestClient implements IErnpClient {
private static final String HEADER_PVP_TXID = "pvp-txid";
private static final String HEADER_MSG_NOT_SET = "NOT-set";
+ private static final String HEADER_ERNP_FEATURE_ADDRESS_ARRAY = "Json-Anschrift-Array";
+ private static final String HEADER_ERNP_FEATURE_NEW_DATETIME_FORMAT = "Json-Use-Date-Type";
+
@Autowired
IConfiguration basicConfig;
@Autowired
@@ -319,6 +323,7 @@ public class ErnpRestClient implements IErnpClient {
person.setFamilienname(eidData.getFamilyName());
person.setVorname(eidData.getGivenName());
person.setGeburtsdatum(buildErnpBirthday(eidData.getDateOfBirth()));
+ person.setGeschlecht(buildErnpGenderType());
ernpReq.setPersonendaten(person);
buildNewEidasDocumens(ernpReq, eidData);
@@ -387,6 +392,11 @@ public class ErnpRestClient implements IErnpClient {
}
+ private String buildErnpGenderType() {
+ return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_ERNPCLIENT_API_ADDPERSON_GENDER);
+
+ }
+
@Nonnull
private ErnpRegisterResult processErnpResponse(SuchenResponse resp, @Nonnull String citizenCountryCode,
boolean forceSinglePersonMatch, @Nonnull String processStepFiendlyname)
@@ -772,8 +782,7 @@ public class ErnpRestClient implements IErnpClient {
}
if (input.getGeschlecht() != null) {
- person.setGeschlecht(
- Personendaten.GeschlechtEnum.fromValue(input.getGeschlecht().getValue()));
+ person.setGeschlecht(input.getGeschlecht());
}
return person;
@@ -894,11 +903,32 @@ public class ErnpRestClient implements IErnpClient {
final RestTemplate springClient = new RestTemplate(requestFactory);
springClient.setErrorHandler(buildErrorHandler());
springClient.getMessageConverters().add(0, buildCustomJacksonObjectMapper());
- springClient.setInterceptors(Collections.singletonList(buildTransactionIdInterceptor()));
+ springClient.setInterceptors(Lists.newArrayList(
+ buildErnpFeatureHeaderInterceptor(),
+ buildTransactionIdInterceptor()));
return springClient;
}
+ private ClientHttpRequestInterceptor buildErnpFeatureHeaderInterceptor() {
+ return new ClientHttpRequestInterceptor() {
+
+ @Override
+ public ClientHttpResponse intercept(HttpRequest request, byte[] body,
+ ClientHttpRequestExecution execution) throws IOException {
+ boolean ernpApi2023Enabled = basicConfig.getBasicConfigurationBoolean(
+ Constants.CONIG_PROPS_EIDAS_ERNPCLIENT_NEW_API_FEATURES, true);
+ if (ernpApi2023Enabled) {
+ log.debug("Injecting HTTP headers to enable new ERnP features ... ");
+ request.getHeaders().add(HEADER_ERNP_FEATURE_ADDRESS_ARRAY, String.valueOf(ernpApi2023Enabled));
+ request.getHeaders().add(HEADER_ERNP_FEATURE_NEW_DATETIME_FORMAT, String.valueOf(ernpApi2023Enabled));
+ }
+
+ return execution.execute(request, body);
+ }
+ };
+ }
+
private ClientHttpRequestInterceptor buildTransactionIdInterceptor() {
return new ClientHttpRequestInterceptor() {
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/wsdl/ernp_client/openapi.json b/modules/authmodule-eIDAS-v2/src/main/resources/wsdl/ernp_client/openapi.json
index 9e09240f..3a4ed480 100644
--- a/modules/authmodule-eIDAS-v2/src/main/resources/wsdl/ernp_client/openapi.json
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/wsdl/ernp_client/openapi.json
@@ -60,7 +60,7 @@
}, {
"name" : "Client-Request-Id",
"in" : "header",
- "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfache)",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
"schema" : {
"type" : "string"
}
@@ -158,7 +158,7 @@
}, {
"name" : "Client-Request-Id",
"in" : "header",
- "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfache)",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
"schema" : {
"type" : "string"
}
@@ -242,6 +242,260 @@
}
}
},
+ "/eidas/info" : {
+ "get" : {
+ "operationId" : "getInfo",
+ "parameters" : [ {
+ "name" : "Client-Request-Time",
+ "in" : "header",
+ "description" : "Client-Requestzeit im ISO-8601 Format mit optionaler Zeitzone (zb '2016-10-27T16:36:08.993')",
+ "schema" : {
+ "type" : "string",
+ "format" : "date-time"
+ }
+ }, {
+ "name" : "Client-Request-Id",
+ "in" : "header",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Behkz",
+ "in" : "header",
+ "description" : "Client-Behördenkennzeichen",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Name",
+ "in" : "header",
+ "description" : "Client-Name bzw Applikationskürzel und Version des aufrufenden Systems (zb 'ZMR 3.4.5')",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "default" : {
+ "description" : "Erfolgreicher Response hat Status 200 wenn Responsepayload vorhanden, sonst 204",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceInfoResponse"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceInfoResponse"
+ }
+ }
+ }
+ },
+ "4XX" : {
+ "description" : "Client Fehler (kann vom Client behoben werden)",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ },
+ "5XX" : {
+ "description" : "Server Fehler (normalerweise nicht vom Client behebbar)",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/eidas/person/loeschen" : {
+ "post" : {
+ "operationId" : "loeschen",
+ "parameters" : [ {
+ "name" : "Client-Request-Time",
+ "in" : "header",
+ "description" : "Client-Requestzeit im ISO-8601 Format mit optionaler Zeitzone (zb '2016-10-27T16:36:08.993')",
+ "schema" : {
+ "type" : "string",
+ "format" : "date-time"
+ }
+ }, {
+ "name" : "Client-Request-Id",
+ "in" : "header",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Behkz",
+ "in" : "header",
+ "description" : "Client-Behördenkennzeichen",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Name",
+ "in" : "header",
+ "description" : "Client-Name bzw Applikationskürzel und Version des aufrufenden Systems (zb 'ZMR 3.4.5')",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "id",
+ "in" : "query",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ } ],
+ "responses" : {
+ "default" : {
+ "description" : "Erfolgreicher Response hat Status 200 wenn Responsepayload vorhanden, sonst 204"
+ },
+ "4XX" : {
+ "description" : "Client Fehler (kann vom Client behoben werden)",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ },
+ "5XX" : {
+ "description" : "Server Fehler (normalerweise nicht vom Client behebbar)",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/eidas/person/stornieren" : {
+ "post" : {
+ "operationId" : "stornieren",
+ "parameters" : [ {
+ "name" : "Client-Request-Time",
+ "in" : "header",
+ "description" : "Client-Requestzeit im ISO-8601 Format mit optionaler Zeitzone (zb '2016-10-27T16:36:08.993')",
+ "schema" : {
+ "type" : "string",
+ "format" : "date-time"
+ }
+ }, {
+ "name" : "Client-Request-Id",
+ "in" : "header",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Behkz",
+ "in" : "header",
+ "description" : "Client-Behördenkennzeichen",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "Client-Name",
+ "in" : "header",
+ "description" : "Client-Name bzw Applikationskürzel und Version des aufrufenden Systems (zb 'ZMR 3.4.5')",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/StornierenRequestPerson"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/StornierenRequestPerson"
+ }
+ }
+ }
+ },
+ "responses" : {
+ "default" : {
+ "description" : "Erfolgreicher Response hat Status 200 wenn Responsepayload vorhanden, sonst 204",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/StornierenResponse"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/StornierenResponse"
+ }
+ }
+ }
+ },
+ "4XX" : {
+ "description" : "Client Fehler (kann vom Client behoben werden)",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ },
+ "5XX" : {
+ "description" : "Server Fehler (normalerweise nicht vom Client behebbar)",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ },
+ "application/xml" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/Fault"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/eidas/person/suchen" : {
"post" : {
"operationId" : "suchen",
@@ -256,7 +510,7 @@
}, {
"name" : "Client-Request-Id",
"in" : "header",
- "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfache)",
+ "description" : "Client-Request ID (um Systemübergreifende Fehlersuche zu vereinfachen)",
"schema" : {
"type" : "string"
}
@@ -468,7 +722,7 @@
}
},
"Anschrift" : {
- "required" : [ "staat", "strasse", "type" ],
+ "required" : [ "kennzeichen", "staat", "strasse", "type" ],
"type" : "object",
"properties" : {
"entityId" : {
@@ -539,6 +793,15 @@
"kontaktinformationen" : {
"$ref" : "#/components/schemas/Kontaktinformationen"
},
+ "kennzeichen" : {
+ "type" : "array",
+ "xml" : {
+ "name" : "AnschriftKennzeichen"
+ },
+ "items" : {
+ "type" : "string"
+ }
+ },
"type" : {
"type" : "string"
}
@@ -548,7 +811,7 @@
}
},
"AnschriftInland" : {
- "required" : [ "gemeinde", "hausnummer", "ort", "postleitzahl", "staat", "strasse" ],
+ "required" : [ "gemeinde", "hausnummer", "kennzeichen", "ort", "postleitzahl", "staat", "strasse" ],
"type" : "object",
"allOf" : [ {
"$ref" : "#/components/schemas/Anschrift"
@@ -599,7 +862,7 @@
} ]
},
"AnschriftInlandAgs" : {
- "required" : [ "gemeinde", "hausnummer", "ort", "postleitzahl", "staat", "strasse" ],
+ "required" : [ "gemeinde", "hausnummer", "kennzeichen", "ort", "postleitzahl", "staat", "strasse" ],
"type" : "object",
"allOf" : [ {
"$ref" : "#/components/schemas/Anschrift"
@@ -663,6 +926,12 @@
"xml" : {
"name" : "Gebaeudeeigenschaft"
}
+ },
+ "identAdresse" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "IdentAdresse"
+ }
}
}
} ]
@@ -917,6 +1186,12 @@
"xml" : {
"attribute" : true
}
+ },
+ "grund" : {
+ "type" : "string",
+ "xml" : {
+ "attribute" : true
+ }
}
}
},
@@ -948,7 +1223,7 @@
}
},
"Person" : {
- "required" : [ "letzteOperation", "personendaten", "type" ],
+ "required" : [ "letzteOperation", "personendaten", "qkz", "type" ],
"type" : "object",
"properties" : {
"letzteOperation" : {
@@ -958,7 +1233,13 @@
"$ref" : "#/components/schemas/PersonendatenErgebnis"
},
"anschrift" : {
- "$ref" : "#/components/schemas/Anschrift"
+ "type" : "array",
+ "xml" : {
+ "name" : "Anschrift"
+ },
+ "items" : {
+ "$ref" : "#/components/schemas/Anschrift"
+ }
},
"akademischerGrad" : {
"type" : "array",
@@ -1005,6 +1286,15 @@
"$ref" : "#/components/schemas/Eidas"
}
},
+ "qkz" : {
+ "type" : "array",
+ "xml" : {
+ "name" : "Qkz"
+ },
+ "items" : {
+ "type" : "string"
+ }
+ },
"gueltigAb" : {
"type" : "string",
"format" : "date-time",
@@ -1082,6 +1372,12 @@
"name" : "Vorname"
}
},
+ "sonstigerName" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "SonstigerName"
+ }
+ },
"geburtsbundesland" : {
"type" : "string",
"xml" : {
@@ -1103,10 +1399,10 @@
},
"geschlecht" : {
"type" : "string",
+ "description" : "Die derzeit erlaubten Werte stehen im Ernp.xsd",
"xml" : {
"name" : "Geschlecht"
- },
- "enum" : [ "Männlich", "Weiblich" ]
+ }
},
"basiszahl" : {
"type" : "string",
@@ -1138,7 +1434,7 @@
}
},
"Reisedokument" : {
- "required" : [ "art" ],
+ "required" : [ "art", "nummer" ],
"type" : "object",
"properties" : {
"entityId" : {
@@ -1292,15 +1588,6 @@
"xml" : {
"name" : "Auskunftssperre"
}
- },
- "qkz" : {
- "type" : "array",
- "xml" : {
- "name" : "Qkz"
- },
- "items" : {
- "type" : "string"
- }
}
}
} ]
@@ -1312,7 +1599,13 @@
"$ref" : "#/components/schemas/Personendaten"
},
"anschrift" : {
- "$ref" : "#/components/schemas/Anschrift"
+ "type" : "array",
+ "xml" : {
+ "name" : "Anschrift"
+ },
+ "items" : {
+ "$ref" : "#/components/schemas/Anschrift"
+ }
},
"akademischerGrad" : {
"type" : "array",
@@ -1365,7 +1658,13 @@
"type" : "object",
"properties" : {
"anschrift" : {
- "$ref" : "#/components/schemas/Anschrift"
+ "type" : "array",
+ "xml" : {
+ "name" : "Anschrift"
+ },
+ "items" : {
+ "$ref" : "#/components/schemas/Anschrift"
+ }
},
"akademischerGrad" : {
"type" : "array",
@@ -1510,6 +1809,12 @@
"name" : "Vorname"
}
},
+ "sonstigerName" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "SonstigerName"
+ }
+ },
"geburtsbundesland" : {
"type" : "string",
"xml" : {
@@ -1531,10 +1836,10 @@
},
"geschlecht" : {
"type" : "string",
+ "description" : "Die derzeit erlaubten Werte stehen im Ernp.xsd",
"xml" : {
"name" : "Geschlecht"
- },
- "enum" : [ "Männlich", "Weiblich" ]
+ }
}
}
},
@@ -1551,7 +1856,7 @@
}
},
"PersonAnlegen" : {
- "required" : [ "anschrift", "begruendung", "personendaten" ],
+ "required" : [ "begruendung", "personendaten" ],
"type" : "object",
"properties" : {
"begruendung" : {
@@ -1564,7 +1869,13 @@
"$ref" : "#/components/schemas/Personendaten"
},
"anschrift" : {
- "$ref" : "#/components/schemas/Anschrift"
+ "type" : "array",
+ "xml" : {
+ "name" : "Anschrift"
+ },
+ "items" : {
+ "$ref" : "#/components/schemas/Anschrift"
+ }
},
"akademischerGrad" : {
"type" : "array",
@@ -1616,6 +1927,75 @@
"name" : "PersonAnlegen"
}
},
+ "ServiceInfo" : {
+ "type" : "object",
+ "properties" : {
+ "datum" : {
+ "type" : "string",
+ "format" : "date",
+ "xml" : {
+ "attribute" : true
+ }
+ },
+ "nachricht" : {
+ "type" : "string",
+ "xml" : {
+ "attribute" : true
+ }
+ }
+ }
+ },
+ "ServiceInfoResponse" : {
+ "type" : "object",
+ "properties" : {
+ "info" : {
+ "type" : "array",
+ "xml" : {
+ "name" : "Info"
+ },
+ "items" : {
+ "$ref" : "#/components/schemas/ServiceInfo"
+ }
+ }
+ },
+ "xml" : {
+ "name" : "ServiceInfoResponse"
+ }
+ },
+ "StornierenResponse" : {
+ "required" : [ "person" ],
+ "type" : "object",
+ "properties" : {
+ "person" : {
+ "$ref" : "#/components/schemas/Person"
+ }
+ },
+ "xml" : {
+ "name" : "StornierenResponse"
+ }
+ },
+ "StornierenRequestPerson" : {
+ "required" : [ "entityId", "version" ],
+ "type" : "object",
+ "properties" : {
+ "entityId" : {
+ "type" : "string",
+ "xml" : {
+ "attribute" : true
+ }
+ },
+ "version" : {
+ "type" : "string",
+ "format" : "date-time",
+ "xml" : {
+ "attribute" : true
+ }
+ }
+ },
+ "xml" : {
+ "name" : "StornierenRequestPerson"
+ }
+ },
"SuchenResponse" : {
"type" : "object",
"properties" : {
@@ -1633,6 +2013,84 @@
"name" : "SuchenResponse"
}
},
+ "Ergebnisoptionen" : {
+ "type" : "object",
+ "properties" : {
+ "lieferePersonendaten" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "LieferePersonendaten"
+ },
+ "default" : "Alle",
+ "enum" : [ "Alle", "AlleOhneMeta", "AlleOhneMetaUndId", "SuchdatenPlusEines", "Mds", "EntityId", "Keine" ]
+ },
+ "liefereBasiszahlen" : {
+ "type" : "boolean",
+ "xml" : {
+ "name" : "LiefereBasiszahlen"
+ },
+ "default" : false
+ },
+ "liefereBasiszahlenErnpGeprueft" : {
+ "type" : "boolean",
+ "xml" : {
+ "name" : "LiefereBasiszahlenErnpGeprueft"
+ },
+ "default" : false
+ },
+ "trefferLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "xml" : {
+ "name" : "TrefferLimit"
+ },
+ "default" : 150
+ },
+ "angehaengteZustaende" : {
+ "type" : "array",
+ "xml" : {
+ "name" : "AngehaengteZustaende"
+ },
+ "items" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "AngehaengteZustaende"
+ },
+ "enum" : [ "Anschrift", "AkademischerGrad", "Reisedokument", "SonstigesDokument", "Staatsangehoerigkeit", "Eidas" ]
+ }
+ },
+ "angehaengteMeldungZmr" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "AngehaengteMeldungZmr"
+ },
+ "default" : "JuengsterHwsAktuell",
+ "enum" : [ "JuengsterHwsAktuell", "JuengsterHws", "HierarchischAktuell", "Hierarchisch", "HierarchischAktuellOhneAuskunftssperren", "HierarchischOhneAuskunftssperren" ]
+ },
+ "historischePersonen" : {
+ "type" : "string",
+ "xml" : {
+ "name" : "HistorischePersonen"
+ },
+ "default" : "Alle",
+ "enum" : [ "Alle", "KeinAmtBeendetBzwAbgeschlossen", "Keine" ]
+ },
+ "ungeprueftePersonen" : {
+ "type" : "boolean",
+ "xml" : {
+ "name" : "UngeprueftePersonen"
+ },
+ "default" : true
+ },
+ "kitverfolgung" : {
+ "type" : "boolean",
+ "xml" : {
+ "name" : "Kitverfolgung"
+ },
+ "default" : true
+ }
+ }
+ },
"PersonSuchen" : {
"required" : [ "begruendung", "suchdaten", "suchoptionen" ],
"type" : "object",
@@ -1646,6 +2104,9 @@
"suchoptionen" : {
"$ref" : "#/components/schemas/Suchoptionen"
},
+ "ergebnisoptionen" : {
+ "$ref" : "#/components/schemas/Ergebnisoptionen"
+ },
"suchdaten" : {
"$ref" : "#/components/schemas/Suchdaten"
}
@@ -1869,10 +2330,10 @@
},
"geschlecht" : {
"type" : "string",
+ "description" : "Die derzeit erlaubten Werte stehen im Ernp.xsd",
"xml" : {
"name" : "Geschlecht"
- },
- "enum" : [ "Männlich", "Weiblich" ]
+ }
},
"anschrift" : {
"$ref" : "#/components/schemas/SuchAnschrift"
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 c44fda55..19476f9a 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
@@ -119,6 +119,7 @@ public class ErnpRestClientProductionTest {
}
@Test
+ @Ignore
@SneakyThrows
public void searchWithMdsElga() {
final String personalIdentifierFirst = "7cEYWithDEElementsasdfsafsaf4CDVzNT4E7cjkU4VqForjUnit";
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/ernp_handbook_example.json b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/ernp_handbook_example.json
index f4485ff7..05cd8afe 100644
--- a/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/ernp_handbook_example.json
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/data/ernp/ernp_handbook_example.json
@@ -2,25 +2,27 @@
"person": [
{
"type": "Person",
- "anschrift": {
- "type": "AnschriftInland",
- "adressstatus": "XXXXXXXXX",
- "codes": {
- "gemeindekennziffer": "09988",
- "strassenkennziffer": "T80001"
- },
- "entityId": 33069800000171092,
- "gemeinde": "Testgemeinde",
- "gueltigAb": "2011-09-06T11:23:55.306+02:00",
- "hausnummer": "99",
- "postleitzahl": "0077",
- "postort": "Testpostort 77 mit maximalmögl. Längen",
- "staat": {
- "isoCode3": "AUT",
- "name": "Österreich"
- },
- "strasse": "Testgasse"
- },
+ "anschrift": [
+ {
+ "type": "AnschriftInland",
+ "adressstatus": "XXXXXXXXX",
+ "codes": {
+ "gemeindekennziffer": "09988",
+ "strassenkennziffer": "T80001"
+ },
+ "entityId": 33069800000171092,
+ "gemeinde": "Testgemeinde",
+ "gueltigAb": "2011-09-06T11:23:55.306+02:00",
+ "hausnummer": "99",
+ "postleitzahl": "0077",
+ "postort": "Testpostort 77 mit maximalmögl. Längen",
+ "staat": {
+ "isoCode3": "AUT",
+ "name": "Österreich"
+ },
+ "strasse": "Testgasse"
+ }
+ ],
"entityId": 33069800000171080,
"gueltigAb": "2011-09-06T11:23:55.306+02:00",
"letzteOperation": {
diff --git a/ms_specific_connector/src/main/resources/application.properties b/ms_specific_connector/src/main/resources/application.properties
index 2c37ffba..83fccab4 100644
--- a/ms_specific_connector/src/main/resources/application.properties
+++ b/ms_specific_connector/src/main/resources/application.properties
@@ -170,13 +170,18 @@ eidas.ms.auth.eIDAS.zmrclient.debug.logfullmessages=false
# 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.ernpclient.ssl.keyStore.type=jks
#eidas.ms.auth.eIDAS.ernpclient.ssl.keyStore.path=../keystore/junit_test.jks
#eidas.ms.auth.eIDAS.ernpclient.ssl.keyStore.password=password
#eidas.ms.auth.eIDAS.ernpclient.ssl.key.alias=meta
#eidas.ms.auth.eIDAS.ernpclient.ssl.key.password=password
+#eidas.ms.auth.eIDAS.ernpclient.req.organisation.behoerdennr=jUnit123456
+eidas.ms.auth.eIDAS.ernpclient.api.person.add.gender=Keine Angabe
+eidas.ms.auth.eIDAS.ernpclient.api.features.2023=false
+
+
+
# SAML2 ID Austria client for matching
#eidas.ms.modules.idaustriaclient.keystore.type=jks
#eidas.ms.modules.idaustriaclient.keystore.path=