diff options
Diffstat (limited to 'modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java')
-rw-r--r-- | modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java | 81 |
1 files changed, 65 insertions, 16 deletions
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java index 1e7ff369..83d7866e 100644 --- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java +++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/SzrClientTestProduction.java @@ -53,12 +53,16 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenti import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException; import at.asitplus.eidas.specific.modules.auth.eidas.v2.szr.SzrClient; import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils; +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; import at.gv.egiz.eaaf.core.api.data.EaafConstants; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; +import at.gv.egiz.eaaf.core.exceptions.EaafBuilderException; import at.gv.egiz.eaaf.core.exceptions.EaafParserException; +import at.gv.egiz.eaaf.core.impl.builder.BpkBuilder; +import at.gv.egiz.eaaf.core.impl.data.Pair; import at.gv.egiz.eaaf.core.impl.data.Triple; import at.gv.egiz.eaaf.core.impl.idp.auth.data.SimpleIdentityLinkAssertionParser; import szrservices.IdentityLinkType; @@ -103,7 +107,39 @@ public class SzrClientTestProduction { Assert.assertNotNull("vsz", vsz); } - + + @Test + public void getVszRandom() throws SzrCommunicationException, EidasSAuthenticationException, EaafBuilderException { + + final String givenName = "Franz"; + final String familyName = RandomStringUtils.randomAlphabetic(10); + final String dateOfBirth = "1989-05-04"; + final String eIDASeID = "IS/AT/" + RandomStringUtils.randomAlphanumeric(20); + + IdentityLinkType idl = szrClient.getIdentityLinkInRawMode(getPersonInfo(familyName, givenName, dateOfBirth, eIDASeID)); + + PersonInfoType vszPerson = getPersonInfo( + idl.getPersonInfo().getPerson().getName().getFamilyName(), + idl.getPersonInfo().getPerson().getName().getGivenName(), + idl.getPersonInfo().getPerson().getDateOfBirth(), + null); + + final Pair<String, String> bpkCalc = + BpkBuilder.generateAreaSpecificPersonIdentifier( + idl.getPersonInfo().getPerson().getIdentification().getValue(), + idl.getPersonInfo().getPerson().getIdentification().getType(), + EaafConstants.URN_PREFIX_CDID + "ZP"); + + IdentificationType vszId = new IdentificationType(); + vszPerson.getPerson().setIdentification(vszId); + vszId.setValue(bpkCalc.getFirst()); + vszId.setType(bpkCalc.getSecond()); + + String vsz = szrClient.getEncryptedStammzahl(vszPerson); + Assert.assertNotNull("vsz", vsz); + + } + @Test public void getEidasBind() throws SzrCommunicationException, EidasSAuthenticationException { String vsz = RandomStringUtils.randomAlphanumeric(10); @@ -204,6 +240,13 @@ public class SzrClientTestProduction { } private PersonInfoType getPersonInfo() throws EidasSAuthenticationException { + return getPersonInfo(familyName, givenName, dateOfBirth, eIDASeID); + + } + + private PersonInfoType getPersonInfo(String familyName, String givenName, String dateOfBirth, String eIDASeID) + throws EidasSAuthenticationException { + final PersonInfoType personInfo = new PersonInfoType(); final PersonNameType personName = new PersonNameType(); final PhysicalPersonType naturalPerson = new PhysicalPersonType(); @@ -211,26 +254,32 @@ public class SzrClientTestProduction { naturalPerson.setName(personName); personInfo.setPerson(naturalPerson); - personInfo.setTravelDocument(eDocument); - - // parse some eID attributes - final Triple<String, String, String> eIdentifier = - EidasResponseUtils.parseEidasPersonalIdentifier(eIDASeID); - final String uniqueId = createHashFromUniqueId(eIdentifier.getThird()); - final String citizenCountry = eIdentifier.getFirst(); // person information personName.setFamilyName(familyName); personName.setGivenName(givenName); naturalPerson.setDateOfBirth(dateOfBirth); - eDocument.setIssuingCountry(citizenCountry); - eDocument.setDocumentNumber(uniqueId); - - // eID document information - eDocument.setDocumentType(basicConfig.getBasicConfiguration( - Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_EDOCUMENTTYPE, - Constants.SZR_CONSTANTS_DEFAULT_DOCUMENT_TYPE)); + + // parse some eID attributes + if (eIDASeID != null) { + final Triple<String, String, String> eIdentifier = + EidasResponseUtils.parseEidasPersonalIdentifier(eIDASeID); + final String uniqueId = createHashFromUniqueId(eIdentifier.getThird()); + final String citizenCountry = eIdentifier.getFirst(); + + eDocument.setIssuingCountry(citizenCountry); + eDocument.setDocumentNumber(uniqueId); + + // eID document information + eDocument.setDocumentType(basicConfig.getBasicConfiguration( + Constants.CONIG_PROPS_EIDAS_SZRCLIENT_PARAMS_EDOCUMENTTYPE, + Constants.SZR_CONSTANTS_DEFAULT_DOCUMENT_TYPE)); + + personInfo.setTravelDocument(eDocument); + + } return personInfo; - } + + } } |