diff options
author | Thomas <> | 2022-07-12 21:18:41 +0200 |
---|---|---|
committer | Thomas <> | 2022-07-12 21:18:41 +0200 |
commit | 6b4e59234163c449c0e66e82ee9ed87785e7702c (patch) | |
tree | 9e3f6b87d260e223dcbb66919de3bfc21cff9a47 /modules/authmodule-eIDAS-v2 | |
parent | 9f80c410af3ab3449ec4a850faa8c4ad0c075970 (diff) | |
download | National_eIDAS_Gateway-6b4e59234163c449c0e66e82ee9ed87785e7702c.tar.gz National_eIDAS_Gateway-6b4e59234163c449c0e66e82ee9ed87785e7702c.tar.bz2 National_eIDAS_Gateway-6b4e59234163c449c0e66e82ee9ed87785e7702c.zip |
refact(szr): only use alreadymatched eID data for SZR communication
Diffstat (limited to 'modules/authmodule-eIDAS-v2')
4 files changed, 20 insertions, 78 deletions
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/szr/SzrClient.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/szr/SzrClient.java index 8c294c97..c9c3a2fa 100644 --- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/szr/SzrClient.java +++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/szr/SzrClient.java @@ -59,9 +59,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants; import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.AbstractSoapClient; import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.AbstractSoapClient.HttpClientConfig.HttpClientConfigBuilder; import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.MatchedPersonResult; -import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData; import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException; -import at.gv.e_government.reference.namespace.persondata._20020228.AlternativeNameType; import at.gv.e_government.reference.namespace.persondata._20020228.IdentificationType; import at.gv.e_government.reference.namespace.persondata._20020228.PersonNameType; import at.gv.e_government.reference.namespace.persondata._20020228.PhysicalPersonType; @@ -84,7 +82,6 @@ import szrservices.SZRException_Exception; import szrservices.SignContent; import szrservices.SignContentEntry; import szrservices.SignContentResponseType; -import szrservices.TravelDocumentType; @Slf4j @@ -139,17 +136,17 @@ public class SzrClient extends AbstractSoapClient { * Get bPK of person. * * - * @param eidData Minimum dataset of person + * @param matchedPersonData Minimum dataset of person * @param target requested bPK target * @param vkz Verfahrenskennzeichen * @return bPK for this person * @throws SzrCommunicationException In case of a SZR error */ - public List<String> getBpk(SimpleEidasData eidData, String target, String vkz) + public List<String> getBpk(MatchedPersonResult matchedPersonData, String target, String vkz) throws SzrCommunicationException { try { final GetBPK parameters = new GetBPK(); - parameters.setPersonInfo(generateSzrRequest(eidData)); + parameters.setPersonInfo(generateSzrRequest(matchedPersonData)); parameters.getBereichsKennung().add(target); parameters.setVKZ(vkz); final GetBPKResponse result = this.szr.getBPK(parameters); @@ -201,13 +198,13 @@ public class SzrClient extends AbstractSoapClient { * @throws SzrCommunicationException In case of a SZR error */ public String getEidasBind(final String vsz, final String bindingPubKey, final String eidStatus, - SimpleEidasData eidData)throws SzrCommunicationException { + MatchedPersonResult eidData)throws SzrCommunicationException { final Map<String, Object> eidsaBindMap = new HashMap<>(); eidsaBindMap.put(ATTR_NAME_VSZ, vsz); eidsaBindMap.put(ATTR_NAME_STATUS, eidStatus); eidsaBindMap.put(ATTR_NAME_PUBKEYS, Collections.singletonList(bindingPubKey)); - eidsaBindMap.put(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, eidData.getCitizenCountryCode()); + eidsaBindMap.put(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, eidData.getCountryCode()); injectMdsIfAvailableAndActive(eidsaBindMap, eidData); try { @@ -264,59 +261,6 @@ public class SzrClient extends AbstractSoapClient { return personInfo; } - private PersonInfoType generateSzrRequest(SimpleEidasData eidData) { - log.trace("Starting connecting SZR Gateway"); - final PersonInfoType personInfo = new PersonInfoType(); - final PersonNameType personName = new PersonNameType(); - final PhysicalPersonType naturalPerson = new PhysicalPersonType(); - final TravelDocumentType eDocument = new TravelDocumentType(); - - naturalPerson.setName(personName); - personInfo.setPerson(naturalPerson); - personInfo.setTravelDocument(eDocument); - - // person information - personName.setFamilyName(eidData.getFamilyName()); - personName.setGivenName(eidData.getGivenName()); - naturalPerson.setDateOfBirth(eidData.getDateOfBirth()); - - //TODO: need to be updated to new eIDAS document interface!!!! - eDocument.setIssuingCountry(eidData.getCitizenCountryCode()); - eDocument.setDocumentNumber(eidData.getPseudonym()); - - // eID document information - String documentType = basicConfig - .getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_EDOCUMENTTYPE, - Constants.SZR_CONSTANTS_DEFAULT_DOCUMENT_TYPE); - eDocument.setDocumentType(documentType); - - // set PlaceOfBirth if available - if (eidData.getPlaceOfBirth() != null) { - log.trace("Find 'PlaceOfBirth' attribute: " + eidData.getPlaceOfBirth()); - boolean setPlaceOfBirth = basicConfig - .getBasicConfigurationBoolean(Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_SETPLACEOFBIRTHIFAVAILABLE, true); - if (setPlaceOfBirth) { - naturalPerson.setPlaceOfBirth(eidData.getPlaceOfBirth()); - log.trace("Adding 'PlaceOfBirth' to ERnB request ... "); - } - } - - // set BirthName if available - if (eidData.getBirthName() != null) { - log.trace("Find 'BirthName' attribute: " + eidData.getBirthName()); - boolean setBirthName = basicConfig - .getBasicConfigurationBoolean(Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_SETBIRTHNAMEIFAVAILABLE, true); - if (setBirthName) { - final AlternativeNameType alternativeName = new AlternativeNameType(); - naturalPerson.setAlternativeName(alternativeName); - alternativeName.setFamilyName(eidData.getBirthName()); - log.trace("Adding 'BirthName' to ERnB request ... "); - } - } - - return personInfo; - } - private IdentityLinkType getIdentityLinkGeneric(GetIdentityLinkEidas getIdl) throws Exception { final JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); final Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); @@ -450,7 +394,7 @@ public class SzrClient extends AbstractSoapClient { log.info("SZR-Client initialization successfull"); } - private void injectMdsIfAvailableAndActive(Map<String, Object> eidsaBindMap, SimpleEidasData eidData) { + private void injectMdsIfAvailableAndActive(Map<String, Object> eidsaBindMap, MatchedPersonResult eidData) { if (basicConfig.getBasicConfigurationBoolean( Constants.CONIG_PROPS_EIDAS_SZRCLIENT_SET_MDS_TO_EIDASBIND, false)) { log.info("Injecting MDS into eidasBind ... "); diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java index 6d315b0a..f3e2adc4 100644 --- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java +++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java @@ -155,7 +155,7 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask { private void executeIdlMode(SimpleEidasData eidData, MatchedPersonResult matchedPersonData) throws EaafException { //request SZR - SzrResultHolder idlResult = requestSzrForIdentityLink(eidData, matchedPersonData); + SzrResultHolder idlResult = requestSzrForIdentityLink(matchedPersonData); //write revision-Log entry for personal-identifier mapping writeExtendedRevisionLogEntry(eidData, eidData.getPersonalIdentifier()); @@ -187,7 +187,7 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask { // get eIDAS bind String signedEidasBind = szrClient - .getEidasBind(vsz, authBlockSigner.getBase64EncodedPublicKey(), EID_STATUS, eidData); + .getEidasBind(vsz, authBlockSigner.getBase64EncodedPublicKey(), EID_STATUS, matchedPersonData); revisionsLogger.logEvent(pendingReq, MsConnectorEventCodes.SZR_EIDASBIND_RECEIVED); AuthProcessDataWrapper authProcessDataWrapper = MatchingTaskUtils.getAuthProcessDataWrapper(pendingReq); authProcessDataWrapper.setGenericDataToSession(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, signedEidasBind); @@ -212,8 +212,7 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask { } } - private SzrResultHolder requestSzrForIdentityLink(SimpleEidasData eidData, - MatchedPersonResult matchedPersonData) throws EaafException { + private SzrResultHolder requestSzrForIdentityLink(MatchedPersonResult matchedPersonData) throws EaafException { //request IdentityLink from SZR log.debug("Requesting encrypted baseId by already matched person information ... "); IdentityLinkType result = szrClient.getIdentityLinkInRawMode(matchedPersonData); @@ -229,7 +228,7 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask { if (debugUseSzrForBpk) { String vkz = basicConfig .getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_VKZ, "no VKZ defined"); - List<String> bpkList = szrClient.getBpk(eidData, targetId, vkz); + List<String> bpkList = szrClient.getBpk(matchedPersonData, targetId, vkz); if (!bpkList.isEmpty()) { bpk = bpkList.get(0); } diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientProductionTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientProductionTest.java index d2bfe662..ecffaa19 100644 --- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientProductionTest.java +++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientProductionTest.java @@ -45,7 +45,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants; import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.szr.SzrClient; import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.MatchedPersonResult; -import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData; import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException; import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException; import at.gv.egiz.eaaf.core.api.data.EaafConstants; @@ -127,13 +126,13 @@ public class SzrClientProductionTest { } - private SimpleEidasData getEidData() { - return SimpleEidasData.builder() + private MatchedPersonResult getEidData() { + return MatchedPersonResult.builder() .familyName("Mustermann") .givenName("Franz") .dateOfBirth("1989-05-04") - .citizenCountryCode("IS") - .pseudonym("1234ffgsdfg56789ABCDEF") + .bpk("1234ffgsdfg56789ABCDEF") + .countryCode("XX") .build(); } diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientTest.java index e61532a3..a35f9bad 100644 --- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientTest.java +++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/SzrClientTest.java @@ -58,7 +58,7 @@ import com.github.skjolber.mockito.soap.SoapServiceRule; import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap; import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants; import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.szr.SzrClient; -import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData; +import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.MatchedPersonResult; import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException; import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException; import at.gv.egiz.eaaf.core.api.data.EaafConstants; @@ -270,15 +270,15 @@ public class SzrClientTest { } - private SimpleEidasData getEidData() { - return SimpleEidasData.builder() + private MatchedPersonResult getEidData() { + return MatchedPersonResult.builder() .familyName("Mustermann") .givenName("Franz") .dateOfBirth("1989-05-05") - .citizenCountryCode("IS") - .pseudonym("1234sdgsdfg56789ABCDEF") + .bpk("1234sdgsdfg56789ABCDEF") + .countryCode("IS") .build(); } - + } |