diff options
Diffstat (limited to 'modules/authmodule-eIDAS-v2/src')
5 files changed, 549 insertions, 52 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": { | 
