diff options
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java')
-rw-r--r-- | eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java index ecf5007a..ab84a45f 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SimpleEidasData.java @@ -23,20 +23,32 @@ package at.asitplus.eidas.specific.modules.auth.eidas.v2.dao; +import org.apache.commons.lang3.builder.EqualsBuilder; + import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.WorkflowException; +import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.RegisterSearchService.RegisterSearchResult; import at.gv.e_government.reference.namespace.persondata._20020228.PostalAddressType; import lombok.Builder; import lombok.Data; -import org.apache.commons.lang3.builder.EqualsBuilder; @Data @Builder public class SimpleEidasData { + /** + * Full eIDAS personal identifier with prefix. + */ private final String personalIdentifier; + + /** + * Citizen country-code from eIDAS personal-identifier. + */ private final String citizenCountryCode; // MDS + /** + * eIDAS personal identifier without prefix. + */ private final String pseudonym; private final String givenName; private final String familyName; @@ -55,16 +67,24 @@ public class SimpleEidasData { * @return true or false depending of the data matches * @throws WorkflowException if multiple results have been found */ - public boolean equalsRegisterData(MergedRegisterSearchResult result) throws WorkflowException { + public boolean equalsRegisterData(RegisterSearchResult result) throws WorkflowException { + /*TODO: maybe this is check is not valid, because only the minimum data-set (personalIdentifer, givenName, + * familyName, dateOfBirth) has to be always available. Any other attributes are optional. + * This check will always evaluate to false if register has more information as current eIDAS process!!! + */ + return new EqualsBuilder() - .append(result.getResult().getPseudonym(), pseudonym) .append(result.getResult().getGivenName(), givenName) .append(result.getResult().getFamilyName(), familyName) .append(result.getResult().getDateOfBirth(), dateOfBirth) .append(result.getResult().getPlaceOfBirth(), placeOfBirth) .append(result.getResult().getBirthName(), birthName) .append(result.getResult().getTaxNumber(), taxNumber) - .isEquals(); + .isEquals() && result.getResult().getPseudonym().stream() + .filter(el -> el.equals(pseudonym)) + .findFirst() + .isPresent(); + } } |