aboutsummaryrefslogtreecommitdiff
path: root/eidas_modules/authmodule-eIDAS-v2/src
diff options
context:
space:
mode:
authorThomas <>2021-07-26 10:33:21 +0200
committerThomas <>2021-07-26 10:33:21 +0200
commit802816a345059aa04c779cde246fd6cb2a2967fe (patch)
tree652b28ce1b5af43c068a57f3926ea56d047ce295 /eidas_modules/authmodule-eIDAS-v2/src
parentdecdfbf7526ffa379672cc9a67383450dff32473 (diff)
downloadNational_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
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src')
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java24
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java2
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java27
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/allgemein/BasTabelleAbfrage.xsd19
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/ErnpAbfrage.xsd40
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/Personensuche.xsd2
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/resources/wsdl/zmr_client/xsd/zmr/entities/EidasIdentitaet.xsd27
7 files changed, 96 insertions, 45 deletions
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>