diff options
author | Thomas <> | 2021-07-26 10:33:21 +0200 |
---|---|---|
committer | Thomas <> | 2021-07-26 10:33:21 +0200 |
commit | 802816a345059aa04c779cde246fd6cb2a2967fe (patch) | |
tree | 652b28ce1b5af43c068a57f3926ea56d047ce295 | |
parent | decdfbf7526ffa379672cc9a67383450dff32473 (diff) | |
download | National_eIDAS_Gateway-802816a345059aa04c779cde246fd6cb2a2967fe.tar.gz National_eIDAS_Gateway-802816a345059aa04c779cde246fd6cb2a2967fe.tar.bz2 National_eIDAS_Gateway-802816a345059aa04c779cde246fd6cb2a2967fe.zip |
update ZMR client WSDL to new version and refactor code to new API
8 files changed, 98 insertions, 48 deletions
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java index 61312c3e..1690016e 100644 --- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java @@ -57,7 +57,6 @@ import at.asitplus.eidas.specific.connector.controller.ProcessEngineSignalContro import at.asitplus.eidas.specific.connector.controller.Pvp2SProfileEndpoint; import at.asitplus.eidas.specific.connector.provider.PvpEndPointCredentialProvider; import at.asitplus.eidas.specific.connector.provider.PvpMetadataProvider; -import at.asitplus.eidas.specific.connector.provider.StatusMessageProvider; import at.asitplus.eidas.specific.connector.test.saml2.Pvp2SProfileEndPointTest; import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants; import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet; @@ -452,9 +451,9 @@ public class FullStartUpAndProcessTest { EidasIdentitaetErgebnisType eidasPersonalIdentifier = new EidasIdentitaetErgebnisType(); personInfo.getEidasIdentitaet().add(eidasPersonalIdentifier); - eidasPersonalIdentifier.setDokumentNummer(personalId); + eidasPersonalIdentifier.setEidasWert(personalId); eidasPersonalIdentifier.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER); - eidasPersonalIdentifier.setStaatscode3(cc); + eidasPersonalIdentifier.setStaatscode2(cc); NatuerlichePersonErgebnisType natInfo = new NatuerlichePersonErgebnisType(); IdentificationType bpk = new IdentificationType(); diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java index c5f01392..29914e21 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java @@ -125,9 +125,9 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient { final PersonSuchenRequest searchPersonReq = new PersonSuchenRequest(); req.setPersonSuchenRequest(searchPersonReq); final EidasSuchdatenType eidasInfos = new EidasSuchdatenType(); - searchPersonReq.setEidasSuchdaten(eidasInfos); + searchPersonReq.getEidasSuchdaten().add(eidasInfos); eidasInfos.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER); - eidasInfos.setEidasNummer(personPseudonym); + eidasInfos.setEidasWert(personPseudonym); // set work-flow client information req.setWorkflowInfoClient(generateWorkFlowInfos(PROCESS_SEARCH_PERSONAL_IDENTIFIER, null)); @@ -583,8 +583,8 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient { String eidasAttrurnPersonalidentifier) { return person.getEidasIdentitaet().stream() .filter(el -> eidasAttrurnPersonalidentifier.equals(el.getEidasArt()) - && el.getStaatscode3().equals(citizenCountryCode)) - .map(el -> el.getDokumentNummer()) + && el.getStaatscode2().equals(citizenCountryCode)) + .map(el -> el.getEidasWert()) .collect(Collectors.toList()); } @@ -603,9 +603,9 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient { String eidasAttrurnPersonalidentifier) { return person.getEidasIdentitaet().stream() .filter(el -> eidasAttrurnPersonalidentifier.equals(el.getEidasArt()) - && el.getStaatscode3().equals(citizenCountryCode)) + && el.getStaatscode2().equals(citizenCountryCode)) .findFirst() - .map(el -> el.getDokumentNummer()) + .map(el -> el.getEidasWert()) .orElse(null); } @@ -701,30 +701,30 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient { // check if eIDAS attribute is already includes an eIDAS-Document boolean alreadyExist = zmrPersonToKitt.getEidasIdentitaet().stream() - .filter(el -> el.getDokumentNummer().equals(attrValue) + .filter(el -> el.getEidasWert().equals(attrValue) && el.getEidasArt().equals(attrName) - && el.getStaatscode3().equals(citizenCountryCode)) + && el.getStaatscode2().equals(citizenCountryCode)) .findAny() .isPresent(); if (!alreadyExist) { // check eIDAS documents already contains a document with this pair of country-code and attribute-name Optional<EidasIdentitaetErgebnisType> oneDocWithNameExists = zmrPersonToKitt.getEidasIdentitaet().stream() - .filter(el -> el.getStaatscode3().equals(citizenCountryCode) + .filter(el -> el.getStaatscode2().equals(citizenCountryCode) && el.getEidasArt().equals(attrName)) .findAny(); if (!allowMoreThanOneEntry && oneDocWithNameExists.isPresent() - && !oneDocWithNameExists.get().getDokumentNummer().equals(attrValue)) { + && !oneDocWithNameExists.get().getEidasWert().equals(attrValue)) { log.warn("eIDAS document: {} already exists for country: {} but attribute-value does not match. " + "Skip update process because no multi-value allowed for this ... ", attrName, citizenCountryCode); } else { EidasIdentitaetAnlageType eidasDocToAdd = new EidasIdentitaetAnlageType(); - eidasDocToAdd.setStaatscode3(citizenCountryCode); + eidasDocToAdd.setStaatscode2(citizenCountryCode); eidasDocToAdd.setEidasArt(attrName); - eidasDocToAdd.setEidasNummer(attrValue); + eidasDocToAdd.setEidasWert(attrValue); log.info("Add eIDAS document: {} for country: {} to ZMR person", attrName, citizenCountryCode); result.add(eidasDocToAdd); diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java index 471cb115..b7fb25ea 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java @@ -63,7 +63,7 @@ public class DeSpecificDetailSearchProcessor implements CountrySpecificDetailSea //TODO: how we can search for more than one eIDAS attribute as a Set EidasSuchdatenType eidasInfos = new EidasSuchdatenType(); - req.setEidasSuchdaten(eidasInfos); + req.getEidasSuchdaten().add(eidasInfos); return req; diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java index da9c8174..2b3fabd9 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java @@ -23,6 +23,20 @@ package at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks; +import java.io.IOException; +import java.util.UUID; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriComponentsBuilder; + import at.asitplus.eidas.specific.connector.MsConnectorEventCodes; import at.asitplus.eidas.specific.connector.MsEidasNodeConstants; import at.asitplus.eidas.specific.connector.gui.StaticGuiBuilderConfiguration; @@ -48,18 +62,6 @@ import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames; import eu.eidas.specificcommunication.exception.SpecificCommunicationException; import eu.eidas.specificcommunication.protocol.SpecificCommunicationService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; -import org.springframework.web.util.UriComponentsBuilder; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.UUID; /** @@ -249,6 +251,7 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask { final UriComponentsBuilder redirectUrl = UriComponentsBuilder.fromHttpUrl(forwardUrl); redirectUrl.queryParam(EidasParameterKeys.TOKEN.toString(), tokenBase64); response.sendRedirect(redirectUrl.build().encode().toString()); + } private void sendPost(HttpServletRequest request, HttpServletResponse response, String tokenBase64, String forwardUrl) diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/allgemein/BasTabelleAbfrage.xsd b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/allgemein/BasTabelleAbfrage.xsd index 4c2387d7..ca78a990 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/allgemein/BasTabelleAbfrage.xsd +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/allgemein/BasTabelleAbfrage.xsd @@ -19,6 +19,7 @@ Aenderungshistorie: <xsd:enumeration value="GEMNRBEHKZ" /> <xsd:enumeration value="TGEM" /> <xsd:enumeration value="GESCHAEFTSPROLLE" /> + <xsd:enumeration value="RELIGION" /> </xsd:restriction> </xsd:simpleType> @@ -51,6 +52,7 @@ Aenderungshistorie: <xsd:element ref="base:GemnrBehkz" minOccurs="0" maxOccurs="unbounded" /> <xsd:element ref="base:BasTgem" minOccurs="0" maxOccurs="unbounded" /> <xsd:element ref="base:Rolle" minOccurs="0" maxOccurs="unbounded" /> + <xsd:element ref="base:ReligionCode" minOccurs="0" maxOccurs="unbounded" /> </xsd:choice> </xsd:complexType> </xsd:element> @@ -152,6 +154,22 @@ Aenderungshistorie: </xsd:complexType> </xsd:element> + <xsd:element name="ReligionCode"> + <xsd:complexType> + <xsd:annotation> + <xsd:documentation>Ein SMI.RELIGIONCODE Eintrag mit den fürs ZMR3 relevanten Feldern</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="Bezeichnung" type="xsd:string"/> + <xsd:element name="Code" type="xsd:string"/> + <xsd:element name="KurzBez" type="xsd:string"/> + <xsd:element name="MigGueltig" type="xsd:string"/> + <xsd:element name="ReferenzNr" type="xsd:long"/> + <xsd:element name="Religionart" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="Geschaeftsprozess"> <xsd:complexType> <xsd:annotation> @@ -172,5 +190,4 @@ Aenderungshistorie: <xsd:attribute name="Name" type="xsd:string" /> </xsd:complexType> </xsd:element> - </xsd:schema>
\ No newline at end of file diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/ErnpAbfrage.xsd b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/ErnpAbfrage.xsd index db36e0d5..12ecd771 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/ErnpAbfrage.xsd +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/ErnpAbfrage.xsd @@ -29,6 +29,7 @@ Author(s): Richard Mayrhofer xmayrh2 <xsd:element ref="cio:NatuerlichePerson" minOccurs="0" />
<xsd:element ref="cio:PostAdresse" minOccurs="0" />
<xsd:element ref="DokumentSuchdaten" minOccurs="0" />
+ <xsd:element ref="Pre" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
@@ -36,6 +37,33 @@ Author(s): Richard Mayrhofer xmayrh2 </xsd:complexType>
</xsd:element>
+ <xsd:element name="Pre">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Vn" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Fn" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Nve" type="xsd:string" minOccurs="0"/>
+ <xsd:element ref="Gd" minOccurs="0"/>
+ <xsd:element name="Go" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Ges" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Str" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Plz" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Ort" type="xsd:string" minOccurs="0" nillable="true"/>
+ <xsd:element name="Eid" type="xsd:long"/>
+ <xsd:element name="Bz" type="base:OrdnungsZahlType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="Gd">
+ <xsd:simpleType>
+ <xsd:annotation>
+ <xsd:documentation>Geburtsdatum, simple type for dates (union), which may omit day and/or month</xsd:documentation>
+ </xsd:annotation>
+ <xsd:union memberTypes="xsd:date xsd:gYearMonth xsd:gYear"/>
+ </xsd:simpleType>
+ </xsd:element>
+
<xsd:element name="ErnpAbfrageInfo">
<xsd:complexType>
<xsd:sequence>
@@ -43,13 +71,13 @@ Author(s): Richard Mayrhofer xmayrh2 <xsd:element name="TrefferLimit" type="xsd:int"/>
<xsd:element ref="base:Bezugsfeld" />
<xsd:element name="Suchkriterien" type="SuchkriterienType"/>
+ <xsd:element name="Suchwizard" type="xsd:boolean" minOccurs="0"/>
<xsd:element ref="ErgebnisKriterienPerson"/>
<xsd:element ref="ErgebnisKriterienMeldung"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-
<xsd:element name="ErgebnisKriterienPerson" >
<xsd:complexType>
<xsd:sequence>
@@ -146,16 +174,18 @@ Author(s): Richard Mayrhofer xmayrh2 </xsd:sequence>
</xsd:complexType>
</xsd:element>
-
+
<xsd:element name="Ergebnissatz">
<xsd:complexType>
<xsd:sequence>
+ <xsd:element name="StarRating" type="xsd:float" minOccurs="0"/>
+ <xsd:element name="Register" type="xsd:string" minOccurs="0"/>
<xsd:element name="PersonErgebnis" type="PersonErgebnisType" minOccurs="0"/>
- <xsd:element name="AuskunftssperrePerson" type="xsd:boolean" default="false"/>
+ <xsd:element name="AuskunftssperrePerson" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="Meldedaten" type="MeldedatenType" minOccurs="0"/>
- <xsd:element name="AuskunftssperreMeldung" type="xsd:boolean" default="false"/>
+ <xsd:element name="AuskunftssperreMeldung" type="xsd:boolean" default="false" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-
+
</xsd:schema>
\ No newline at end of file diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/Personensuche.xsd b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/Personensuche.xsd index 31606d6f..a501ba1f 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/Personensuche.xsd +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/Personensuche.xsd @@ -50,7 +50,7 @@ Aenderungshistorie: <xsd:element ref="cio:NatuerlichePerson" minOccurs="0"/>
<xsd:element ref="cio:PostAdresse" minOccurs="0"/>
<xsd:element ref="DokumentSuchdaten" minOccurs="0"/>
- <xsd:element ref="EidasSuchdaten" minOccurs="0"/>
+ <xsd:element ref="EidasSuchdaten" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/entities/EidasIdentitaet.xsd b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/entities/EidasIdentitaet.xsd index cd07bd8a..361c0c95 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/entities/EidasIdentitaet.xsd +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/entities/EidasIdentitaet.xsd @@ -20,9 +20,9 @@ Author(s): Richard Mayrhofer <xsd:sequence>
<xsd:element ref="base:EntityErgebnisReferenz"/>
<xsd:element ref="EidasArt"/>
- <xsd:element ref="Staatscode3" minOccurs="0"/>
+ <xsd:element ref="Staatscode2" minOccurs="0"/>
<xsd:element ref="base:AusstellBehoerde" minOccurs="0"/>
- <xsd:element ref="base:DokumentNummer" minOccurs="0"/>
+ <xsd:element ref="EidasWert" minOccurs="0"/>
<xsd:element ref="base:AusstellDatum" minOccurs="0"/>
<xsd:element ref="base:AblaufDatum" minOccurs="0"/>
</xsd:sequence>
@@ -35,9 +35,9 @@ Author(s): Richard Mayrhofer </xsd:annotation>
<xsd:sequence>
<xsd:element ref="EidasArt"/>
- <xsd:element ref="Staatscode3"/>
+ <xsd:element ref="Staatscode2"/>
<xsd:element ref="base:AusstellBehoerde" minOccurs="0"/>
- <xsd:element ref="EidasNummer" minOccurs="0"/>
+ <xsd:element ref="EidasWert" minOccurs="0"/>
<xsd:element ref="base:AusstellDatum" minOccurs="0"/>
<xsd:element ref="base:AblaufDatum" minOccurs="0"/>
<xsd:element ref="image" minOccurs="0"/>
@@ -52,9 +52,9 @@ Author(s): Richard Mayrhofer <xsd:sequence>
<xsd:element ref="base:Technisch"/>
<xsd:element ref="EidasArt" minOccurs="0"/>
- <xsd:element ref="Staatscode3" minOccurs="0"/>
+ <xsd:element ref="Staatscode2" minOccurs="0"/>
<xsd:element ref="base:AusstellBehoerde" minOccurs="0"/>
- <xsd:element ref="EidasNummer" minOccurs="0"/>
+ <xsd:element ref="EidasWert" minOccurs="0"/>
<xsd:element ref="base:AusstellDatum" minOccurs="0"/>
<xsd:element ref="base:AblaufDatum" minOccurs="0"/>
<xsd:element ref="image" minOccurs="0"/>
@@ -69,16 +69,17 @@ Author(s): Richard Mayrhofer </xsd:annotation>
<xsd:sequence>
<xsd:element ref="EidasArt" minOccurs="0"/>
- <xsd:element ref="EidasNummer" minOccurs="0"/>
+ <xsd:element ref="Staatscode2" minOccurs="0"/>
+ <xsd:element ref="EidasWert" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
- <xsd:element name="Staatscode3">
+ <xsd:element name="Staatscode2">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse"/>
- <xsd:minLength value="3"/>
- <xsd:maxLength value="3"/>
+ <xsd:minLength value="2"/>
+ <xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
@@ -87,16 +88,16 @@ Author(s): Richard Mayrhofer <xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse"/>
<xsd:minLength value="1"/>
- <xsd:maxLength value="55"/>
+ <xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
- <xsd:element name="EidasNummer">
+ <xsd:element name="EidasWert">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse"/>
<xsd:minLength value="0"/>
- <xsd:maxLength value="54"/>
+ <xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
|