diff options
Diffstat (limited to 'eaaf_core')
10 files changed, 827 insertions, 84 deletions
| diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/AuthenticationData.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/AuthenticationData.java index 7b7aaa36..677e3c46 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/AuthenticationData.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/AuthenticationData.java @@ -27,15 +27,16 @@ import java.util.Date;  import java.util.Map;  import java.util.TimeZone; -import at.gv.egiz.eaaf.core.api.idp.IAuthData; -import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; -import at.gv.egiz.eaaf.core.exceptions.EaafStorageException; -  import org.apache.commons.collections4.map.HashedMap;  import org.apache.commons.lang3.StringUtils;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; +import at.gv.egiz.eaaf.core.exceptions.EaafStorageException; +import at.gv.egiz.eaaf.core.impl.idp.auth.builder.BpkBuilder; +  /**   * Service-Provider specific authentication data.   * @@ -293,7 +294,8 @@ public class AuthenticationData implements IAuthData, Serializable {     */    @Deprecated    public void setBpkType(final String bpkType) { -    this.bpkType = bpkType; +    this.bpkType = BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(bpkType); +        }    @Override diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java index 75b14489..c2f85fef 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java @@ -26,6 +26,17 @@ import java.util.ArrayList;  import java.util.Collection;  import java.util.Map.Entry; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.lang.NonNull; +import org.springframework.util.Assert; +import org.springframework.util.Base64Utils; +import org.w3c.dom.DOMException; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +  import at.gv.egiz.eaaf.core.api.IRequest;  import at.gv.egiz.eaaf.core.api.data.EaafConstants;  import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions; @@ -49,17 +60,6 @@ import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;  import at.gv.egiz.eaaf.core.impl.idp.auth.data.SimpleIdentityLinkAssertionParser;  import at.gv.egiz.eaaf.core.impl.utils.XPathUtils; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.lang.NonNull; -import org.springframework.util.Assert; -import org.springframework.util.Base64Utils; -import org.w3c.dom.DOMException; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -  public abstract class AbstractAuthenticationDataBuilder implements IAuthenticationDataBuilder {    private static final Logger log =        LoggerFactory.getLogger(AbstractAuthenticationDataBuilder.class); @@ -726,21 +726,9 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati          PvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, String.class);      if (StringUtils.isNotEmpty(pvpBpkTypeAttr)) { -      // //fix a wrong bPK-Type encoding, which was used in some PVP Standardportal -      // implementations -      // if (pvpbPKTypeAttr.startsWith(EAAFConstants.URN_PREFIX_CDID) && -      // !pvpbPKTypeAttr.substring(EAAFConstants.URN_PREFIX_CDID.length(), -      // EAAFConstants.URN_PREFIX_CDID.length() + 1).equals("+")) { -      // log.warn("Receive uncorrect encoded bBKType attribute " + pvpbPKTypeAttr + " -      // Starting -      // attribute value correction ... "); -      // pvpbPKTypeAttr = EAAFConstants.URN_PREFIX_CDID + "+" + -      // pvpbPKTypeAttr.substring(EAAFConstants.URN_PREFIX_CDID.length() + 1); -      // -      // } -      log.debug( -          "Find PVP-Attr: " + PvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_FRIENDLY_NAME); -      return pvpBpkTypeAttr; +      log.debug("Find PVP-Attr: {}", PvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_FRIENDLY_NAME); +      return BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(pvpBpkTypeAttr); +            }      return null; diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilder.java index a613bd56..bb8355ad 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilder.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilder.java @@ -25,20 +25,22 @@ import java.security.PrivateKey;  import java.security.PublicKey;  import java.text.SimpleDateFormat;  import java.util.Date; +import java.util.Map.Entry; +import javax.annotation.Nullable;  import javax.crypto.BadPaddingException;  import javax.crypto.Cipher;  import javax.crypto.IllegalBlockSizeException;  import javax.crypto.NoSuchPaddingException;  import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory;  import org.springframework.util.Base64Utils;  import at.gv.egiz.eaaf.core.api.data.EaafConstants;  import at.gv.egiz.eaaf.core.exceptions.EaafBuilderException;  import at.gv.egiz.eaaf.core.impl.data.Pair; +import lombok.extern.slf4j.Slf4j; +  /**   * Builder for the bPK, as defined in @@ -47,9 +49,9 @@ import at.gv.egiz.eaaf.core.impl.data.Pair;   * <code>"reference.e-government.gv.at"</code>.   *   */ +@Slf4j  public class BpkBuilder { -  private static final Logger log = LoggerFactory.getLogger(BpkBuilder.class); - +        /**     * Calculates an area specific unique person-identifier from a baseID.     * @@ -100,12 +102,17 @@ public class BpkBuilder {      if (baseIdType.equals(EaafConstants.URN_PREFIX_BASEID)) {        log.trace("Find baseID. Starting unique identifier caluclation for this target"); -      if (targetIdentifier.startsWith(EaafConstants.URN_PREFIX_CDID) -          || targetIdentifier.startsWith(EaafConstants.URN_PREFIX_WBPK)) { -        log.trace("Calculate bPK, wbPK, or STORK identifier for target: " + targetIdentifier); +      if (targetIdentifier.startsWith(EaafConstants.URN_PREFIX_CDID)) { +        log.trace("Calculate bPK identifier for target: " + targetIdentifier);          return Pair.newInstance(calculatebPKwbPK(baseID + "+" + targetIdentifier),              targetIdentifier); +      } else if (targetIdentifier.startsWith(EaafConstants.URN_PREFIX_WBPK)) { +        log.trace("Calculate  wbPK identifier for target: " + targetIdentifier); +        return Pair.newInstance(calculatebPKwbPK( +            baseID + "+" + normalizeBpkTargetIdentifierToCalculationFormat(targetIdentifier)), +            normalizeBpkTargetIdentifierToCommonFormat(targetIdentifier)); +                } else if (targetIdentifier.startsWith(EaafConstants.URN_PREFIX_EIDAS)) {          log.trace("Calculate eIDAS identifier for target: " + targetIdentifier);          final String[] splittedTarget = targetIdentifier.split("\\+"); @@ -144,51 +151,7 @@ public class BpkBuilder {      }    } -  /** -   * Builds the eIDAS from the given parameters. -   * -   * @param baseId             baseID of the citizen -   * @param baseIdType         Type of the baseID -   * @param sourceCountry      CountryCode of that country, which build the eIDAs -   *                           ID -   * @param destinationCountry CountryCode of that country, which receives the -   *                           eIDAs ID -   * -   * @return Pair eIDAs/bPKType in a BASE64 encoding -   * @throws EaafBuilderException if some input data are not valid -   */ -  private static Pair<String, String> buildEidasIdentifer(final String baseId, -      final String baseIdType, final String sourceCountry, final String destinationCountry) -      throws EaafBuilderException { -    String bpk = null; -    String bpkType = null; -    // check if we have been called by public sector application -    if (baseIdType.startsWith(EaafConstants.URN_PREFIX_BASEID)) { -      bpkType = EaafConstants.URN_PREFIX_EIDAS + sourceCountry + "+" + destinationCountry; -      log.debug("Building eIDAS identification from: [identValue]+" + bpkType); -      bpk = calculatebPKwbPK(baseId + "+" + bpkType); - -    } else { // if not, sector identification value is already calculated by BKU -      log.debug("eIDAS eIdentifier already provided by BKU"); -      bpk = baseId; -    } - -    if (StringUtils.isEmpty(bpk) || StringUtils.isEmpty(sourceCountry) -        || StringUtils.isEmpty(destinationCountry)) { -      throw new EaafBuilderException("builder.00", -          new Object[] { "eIDAS-ID", -              "Unvollständige Parameterangaben: identificationValue=" + bpk + ", Zielland=" -                  + destinationCountry + ", Ursprungsland=" + sourceCountry }, -          "eIDAS-ID: Unvollständige Parameterangaben: identificationValue=" + bpk + ", Zielland=" -              + destinationCountry + ", Ursprungsland=" + sourceCountry); -    } - -    log.trace("eIDAS pseudonym generation finished. "); -    final String eIdentifier = sourceCountry + "/" + destinationCountry + "/" + bpk; - -    return Pair.newInstance(eIdentifier, bpkType); -  }    /**     * Create an encrypted bPK. @@ -264,6 +227,100 @@ public class BpkBuilder {      }    } +  /** +   * Normalize wbPK target identifier for FN, ZVR, and ERSB to XFN, XZVR, and XERSB. +   *  +   * <p>If the target is not of this types the target will be returned as it is</p> +   * @param targetIdentifier bPK input target +   * @return XFN, XZVR, XERSB, or targetIdentfier if no normalization is required  +   */ +  @Nullable +  public static String normalizeBpkTargetIdentifierToCommonFormat(@Nullable String targetIdentifier) { +    if (targetIdentifier != null  +        && !targetIdentifier.startsWith(EaafConstants.URN_PREFIX_WBPK_TARGET_WITH_X)) { +      for (Entry<String, String> mapper : EaafConstants.URN_WBPK_TARGET_X_TO_NONE_MAPPER.entrySet()) { +        if (targetIdentifier.startsWith(mapper.getValue())) { +          String wbpkTarget = mapper.getKey() + targetIdentifier.substring(mapper.getValue().length());  +          log.trace("Normalize wbPK target: {} to {}", targetIdentifier, wbpkTarget); +          return wbpkTarget; +         +        } +      } +    }  +     +    return targetIdentifier; +  } +   +  /** +   * Normalize wbPK target identifier for XFN, XZVR, and XERSB to bPK calculation format like, FN, ZVR, and ERSB. +   *  +   * <p>If the target is not of this types the target will be returned as it is</p> +   *  +   * @param targetIdentifier bPK input target +   * @return FN, ZVR, ERSB, or targetIdentfier if no normalization is required  +   */ +  @Nullable +  public static String normalizeBpkTargetIdentifierToCalculationFormat(@Nullable String targetIdentifier) { +    if (targetIdentifier != null && targetIdentifier.startsWith(EaafConstants.URN_PREFIX_WBPK)) { +      for (Entry<String, String> mapper : EaafConstants.URN_WBPK_TARGET_X_TO_NONE_MAPPER.entrySet()) { +        if (targetIdentifier.startsWith(mapper.getKey())) { +          String wbpkTarget = mapper.getValue() + targetIdentifier.substring(mapper.getKey().length());  +          log.trace("Find new wbPK target: {}. Replace it by: {}", targetIdentifier, wbpkTarget); +          return wbpkTarget; +       +        } +      } +    } +     +    return targetIdentifier;     +  } +   +  /** +   * Builds the eIDAS from the given parameters. +   * +   * @param baseId             baseID of the citizen +   * @param baseIdType         Type of the baseID +   * @param sourceCountry      CountryCode of that country, which build the eIDAs +   *                           ID +   * @param destinationCountry CountryCode of that country, which receives the +   *                           eIDAs ID +   * +   * @return Pair eIDAs/bPKType in a BASE64 encoding +   * @throws EaafBuilderException if some input data are not valid +   */ +  private static Pair<String, String> buildEidasIdentifer(final String baseId, +      final String baseIdType, final String sourceCountry, final String destinationCountry) +      throws EaafBuilderException { +    String bpk = null; +    String bpkType = null; + +    // check if we have been called by public sector application +    if (baseIdType.startsWith(EaafConstants.URN_PREFIX_BASEID)) { +      bpkType = EaafConstants.URN_PREFIX_EIDAS + sourceCountry + "+" + destinationCountry; +      log.debug("Building eIDAS identification from: [identValue]+" + bpkType); +      bpk = calculatebPKwbPK(baseId + "+" + bpkType); + +    } else { // if not, sector identification value is already calculated by BKU +      log.debug("eIDAS eIdentifier already provided by BKU"); +      bpk = baseId; +    } + +    if (StringUtils.isEmpty(bpk) || StringUtils.isEmpty(sourceCountry) +        || StringUtils.isEmpty(destinationCountry)) { +      throw new EaafBuilderException("builder.00", +          new Object[] { "eIDAS-ID", +              "Unvollständige Parameterangaben: identificationValue=" + bpk + ", Zielland=" +                  + destinationCountry + ", Ursprungsland=" + sourceCountry }, +          "eIDAS-ID: Unvollständige Parameterangaben: identificationValue=" + bpk + ", Zielland=" +              + destinationCountry + ", Ursprungsland=" + sourceCountry); +    } + +    log.trace("eIDAS pseudonym generation finished. "); +    final String eIdentifier = sourceCountry + "/" + destinationCountry + "/" + bpk; + +    return Pair.newInstance(eIdentifier, bpkType); +  } +      private static String calculatebPKwbPK(final String basisbegriff) throws EaafBuilderException {      try {        final MessageDigest md = MessageDigest.getInstance("SHA-1"); diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/BpkAttributeBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/BpkAttributeBuilder.java index 172d74a7..e18cc1a8 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/BpkAttributeBuilder.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/BpkAttributeBuilder.java @@ -84,12 +84,16 @@ public class BpkAttributeBuilder implements IPvpAttributeBuilder {      Assert.isTrue(type != null, "bPKType is 'NULL'");      if (type.startsWith(EaafConstants.URN_PREFIX_WBPK)) {        return type.substring(EaafConstants.URN_PREFIX_WBPK.length()); +            } else if (type.startsWith(EaafConstants.URN_PREFIX_CDID)) {        return type.substring(EaafConstants.URN_PREFIX_CDID.length()); +            } else if (type.startsWith(EaafConstants.URN_PREFIX_EIDAS)) {        return type.substring(EaafConstants.URN_PREFIX_EIDAS.length()); +            } else {        return type; +            }    } diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/EidSectorForIdAttributeBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/EidSectorForIdAttributeBuilder.java index 3aedf9ab..48d7a3a3 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/EidSectorForIdAttributeBuilder.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/builder/attributes/EidSectorForIdAttributeBuilder.java @@ -27,6 +27,7 @@ import at.gv.egiz.eaaf.core.api.idp.IPvpAttributeBuilder;  import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;  import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;  import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException; +import at.gv.egiz.eaaf.core.impl.idp.auth.builder.BpkBuilder;  @PvpMetadata  public class EidSectorForIdAttributeBuilder implements IPvpAttributeBuilder { @@ -46,7 +47,9 @@ public class EidSectorForIdAttributeBuilder implements IPvpAttributeBuilder {      }      return g.buildStringAttribute(EID_SECTOR_FOR_IDENTIFIER_FRIENDLY_NAME, -        EID_SECTOR_FOR_IDENTIFIER_NAME, bpktype); +        EID_SECTOR_FOR_IDENTIFIER_NAME,  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(bpktype)); +        }    @Override diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/AuthenticationDataBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/AuthenticationDataBuilderTest.java index 072dbb95..33bd1010 100644 --- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/AuthenticationDataBuilderTest.java +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/AuthenticationDataBuilderTest.java @@ -4,6 +4,7 @@ import java.io.ByteArrayInputStream;  import java.util.HashMap;  import java.util.Map; +import org.junit.Assert;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.beans.factory.annotation.Autowired; @@ -11,7 +12,11 @@ import org.springframework.test.context.ContextConfiguration;  import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  import org.springframework.util.Base64Utils; +import at.gv.egiz.eaaf.core.api.data.EaafConstants;  import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.exceptions.EaafAuthenticationException; +import at.gv.egiz.eaaf.core.exceptions.EaafParserException; +import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;  import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;  import at.gv.egiz.eaaf.core.impl.idp.auth.data.SimpleIdentityLinkAssertionParser;  import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyConfiguration; @@ -156,6 +161,111 @@ public class AuthenticationDataBuilderTest {    } +  @Test +  public void buildAuthDataBpkTest() throws EaafParserException,  +      EaafAuthenticationException, EaafStorageException { +    final TestRequestImpl pendingReq = new TestRequestImpl(); +    final Map<String, String> spConfigMap = new HashMap<>(); +    spConfigMap.put("target", "urn:publicid:gv.at:cdid+ZP-MH"); + +    final DummySpConfiguration spConfig = new DummySpConfiguration(spConfigMap, authConfig); +    pendingReq.setSpConfig(spConfig); + +    final HashMap<String, Object> sessionStore = new HashMap<>(); +    final AuthProcessDataWrapper wrapper = new AuthProcessDataWrapper(sessionStore); +    wrapper.setIdentityLink(new SimpleIdentityLinkAssertionParser( +        new ByteArrayInputStream(Base64Utils.decode(DUMMY_IDL_2.getBytes()))) +            .parseIdentityLink()); +    pendingReq.setRawDataToTransaction(sessionStore); + +     +    //build authData +    IAuthData authData = authBuilder.buildAuthenticationData(pendingReq); +     +    Assert.assertEquals("Wrong bPK", "RwsSdKzmcbL5FKoADZx7/iUZANE=", authData.getBpk()); +    Assert.assertEquals("Wrong bPKType", "urn:publicid:gv.at:cdid+ZP-MH", authData.getBpkType()); +     +     +  } +   +  @Test +  public void buildAuthDataWbpkTestWithoutXTarget() throws EaafParserException,  +      EaafAuthenticationException, EaafStorageException { +    final TestRequestImpl pendingReq = new TestRequestImpl(); +    final Map<String, String> spConfigMap = new HashMap<>(); +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "FN+123456i"); + +    final DummySpConfiguration spConfig = new DummySpConfiguration(spConfigMap, authConfig); +    pendingReq.setSpConfig(spConfig); + +    final HashMap<String, Object> sessionStore = new HashMap<>(); +    final AuthProcessDataWrapper wrapper = new AuthProcessDataWrapper(sessionStore); +    wrapper.setIdentityLink(new SimpleIdentityLinkAssertionParser( +        new ByteArrayInputStream(Base64Utils.decode(DUMMY_IDL_2.getBytes()))) +            .parseIdentityLink()); +    pendingReq.setRawDataToTransaction(sessionStore); + +     +    //build authData +    IAuthData authData = authBuilder.buildAuthenticationData(pendingReq); +     +    Assert.assertEquals("Wrong bPK", "k65HRxpVcoZ2OPZHo3j2LEn/JQE=", authData.getBpk()); +    Assert.assertEquals("Wrong bPKType", EaafConstants.URN_PREFIX_WBPK + "XFN+123456i", authData.getBpkType()); +     +  } +   +  @Test +  public void buildAuthDataWbpkTestWithXTarget() throws EaafParserException,  +      EaafAuthenticationException, EaafStorageException { +    final TestRequestImpl pendingReq = new TestRequestImpl(); +    final Map<String, String> spConfigMap = new HashMap<>(); +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XFN+123456i"); + +    final DummySpConfiguration spConfig = new DummySpConfiguration(spConfigMap, authConfig); +    pendingReq.setSpConfig(spConfig); + +    final HashMap<String, Object> sessionStore = new HashMap<>(); +    final AuthProcessDataWrapper wrapper = new AuthProcessDataWrapper(sessionStore); +    wrapper.setIdentityLink(new SimpleIdentityLinkAssertionParser( +        new ByteArrayInputStream(Base64Utils.decode(DUMMY_IDL_2.getBytes()))) +            .parseIdentityLink()); +    pendingReq.setRawDataToTransaction(sessionStore); + +     +    //build authData +    IAuthData authData = authBuilder.buildAuthenticationData(pendingReq); +     +    Assert.assertEquals("Wrong bPK", "k65HRxpVcoZ2OPZHo3j2LEn/JQE=", authData.getBpk()); +    Assert.assertEquals("Wrong bPKType", EaafConstants.URN_PREFIX_WBPK + "XFN+123456i", authData.getBpkType()); +     +  } +   +  @Test +  public void buildAuthDataEidasTarget() throws EaafParserException,  +      EaafAuthenticationException, EaafStorageException { +    final TestRequestImpl pendingReq = new TestRequestImpl(); +    final Map<String, String> spConfigMap = new HashMap<>(); +    spConfigMap.put("target", EaafConstants.URN_PREFIX_EIDAS + "AT+ES"); + +    final DummySpConfiguration spConfig = new DummySpConfiguration(spConfigMap, authConfig); +    pendingReq.setSpConfig(spConfig); + +    final HashMap<String, Object> sessionStore = new HashMap<>(); +    final AuthProcessDataWrapper wrapper = new AuthProcessDataWrapper(sessionStore); +    wrapper.setIdentityLink(new SimpleIdentityLinkAssertionParser( +        new ByteArrayInputStream(Base64Utils.decode(DUMMY_IDL_2.getBytes()))) +            .parseIdentityLink()); +    pendingReq.setRawDataToTransaction(sessionStore); + +     +    //build authData +    IAuthData authData = authBuilder.buildAuthenticationData(pendingReq); +     +    Assert.assertEquals("Wrong bPK", "AT/ES/7AuLZNKsiRr97yvLsQ16SZ6r0q0=", authData.getBpk()); +    Assert.assertEquals("Wrong bPKType", EaafConstants.URN_PREFIX_EIDAS + "AT+ES", authData.getBpkType()); +     +  } +      private void buildAuthDataWithIdlOnly_2(final Boolean idlEscaptionFlag, final String givenName,        final String familyName) throws Exception {      IAuthData authData = null; diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/AbstractAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/AbstractAttributeBuilderTest.java index 96e870ee..7092031f 100644 --- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/AbstractAttributeBuilderTest.java +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/AbstractAttributeBuilderTest.java @@ -130,7 +130,7 @@ public abstract class AbstractAttributeBuilderTest {    protected IAttributeGenerator<String> gen = new SimpleStringAttributeGenerator();    protected static DummySpConfiguration spConfig = null; -  private static final Map<String, String> spConfigMap = new HashMap<>(); +  protected static final Map<String, String> spConfigMap = new HashMap<>();    private static final TestRequestImpl pendingReq = new TestRequestImpl();    /** diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BpkAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BpkAttributeBuilderTest.java new file mode 100644 index 00000000..1ad75abc --- /dev/null +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BpkAttributeBuilderTest.java @@ -0,0 +1,123 @@ +package at.gv.egiz.eaaf.core.impl.idp.auth.attributes; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.BpkAttributeBuilder; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("/SpringTest-context_eaaf_core.xml") +public class BpkAttributeBuilderTest extends AbstractAttributeBuilderTest { + +  private final IAttributeBuilder attrBuilde = new BpkAttributeBuilder(); +   +  @Test +  public void performTestBpk() throws Exception { +    spConfigMap.put("target", "urn:publicid:gv.at:cdid+ZP-MH"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong bPK",  +        "ZP-MH:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkFn() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XFN+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XFN+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkZvr() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XZVR+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XZVR+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkErsb() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XERSB+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XERSB+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormFn() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "FN+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XFN+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormZvr() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "ZVR+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XZVR+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormErsb() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "ERSB+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK",  +        "XERSB+123456i:" + authData.getBpk(),  +        value); +       +  } +   +  @Test +  public void performTestEidas() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_EIDAS + "AT+ES"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong eIDAS bPK",  +        "AT+ES:" + authData.getBpk(),  +        value); +       +  } +} diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/EidSectorForIdAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/EidSectorForIdAttributeBuilderTest.java new file mode 100644 index 00000000..204eea56 --- /dev/null +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/EidSectorForIdAttributeBuilderTest.java @@ -0,0 +1,123 @@ +package at.gv.egiz.eaaf.core.impl.idp.auth.attributes; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.EidSectorForIdAttributeBuilder; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("/SpringTest-context_eaaf_core.xml") +public class EidSectorForIdAttributeBuilderTest extends AbstractAttributeBuilderTest { + +  private final IAttributeBuilder attrBuilde = new EidSectorForIdAttributeBuilder(); +   +  @Test +  public void performTestBpk() throws Exception { +    spConfigMap.put("target", "urn:publicid:gv.at:cdid+ZP-MH"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong bPK target",  +        "urn:publicid:gv.at:cdid+ZP-MH",  +        value); +       +  } +   +  @Test +  public void performTestWbpkFn() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XFN+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "FN+123456i",  +        value); +       +  } +   +  @Test +  public void performTestWbpkZvr() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XZVR+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "ZVR+123456i",  +        value); +       +  } +   +  @Test +  public void performTestWbpkErsb() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "XERSB+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "ERSB+123456i",  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormFn() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "FN+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "FN+123456i",  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormZvr() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "ZVR+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "ZVR+123456i",  +        value); +       +  } +   +  @Test +  public void performTestWbpkOldFormErsb() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_WBPK + "ERSB+123456i"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong wbPK target",  +        EaafConstants.URN_PREFIX_WBPK + "ERSB+123456i",  +        value); +       +  } +   +  @Test +  public void performTestEidas() throws Exception { +    spConfigMap.put("target", EaafConstants.URN_PREFIX_EIDAS + "AT+ES"); +     +    final IAuthData authData = buildAuthData(); +    final String value = attrBuilde.build(spConfig, authData, gen); + +    Assert.assertEquals("Wrong eIDAS bPK target",  +        EaafConstants.URN_PREFIX_EIDAS + "AT+ES",  +        value); +       +  } +} diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilderTest.java new file mode 100644 index 00000000..0ca8ca53 --- /dev/null +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilderTest.java @@ -0,0 +1,333 @@ +package at.gv.egiz.eaaf.core.impl.idp.auth.builder; + +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.BlockJUnit4ClassRunner; + +import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.exceptions.EaafBuilderException; +import at.gv.egiz.eaaf.core.impl.data.Pair; + +@RunWith(BlockJUnit4ClassRunner.class) +public class BpkBuilderTest { + +  private static final String BASEID = "RUxHQVRlc3RQQjBYWFjFkHpnw7xyX1hYWFTDvHpla8OnaQ=="; +   +   +  @Test +  public void noBaseId() { +    try { +      BpkBuilder.generateAreaSpecificPersonIdentifier(null, EaafConstants.URN_PREFIX_CDID + "AA"); +       +    } catch (EaafBuilderException e) { +      Assert.assertEquals("Wrong errorCode", "builder.00", e.getErrorId()); +    } +  } +   +  @Test +  public void noTarget() { +    try { +      BpkBuilder.generateAreaSpecificPersonIdentifier(BASEID, null); +       +    } catch (EaafBuilderException e) { +      Assert.assertEquals("Wrong errorCode", "builder.00", e.getErrorId()); +    } +  } +   +  @Test +  public void noBaseIdType() { +    try { +      BpkBuilder.generateAreaSpecificPersonIdentifier(BASEID,  +          null, EaafConstants.URN_PREFIX_CDID + "AA"); +       +    } catch (EaafBuilderException e) { +      Assert.assertEquals("Wrong errorCode", "builder.00", e.getErrorId()); +    } +  } +   +  @Test +  public void wrongBaseIdType() { +    try { +      BpkBuilder.generateAreaSpecificPersonIdentifier(BASEID,  +          EaafConstants.URN_PREFIX_CDID + "BB", EaafConstants.URN_PREFIX_CDID + "AA"); +       +    } catch (EaafBuilderException e) { +      Assert.assertEquals("Wrong errorCode", "builder.00", e.getErrorId()); +    } +  } +   +  @Test +  public void baseIdTypeEqualsTarget() throws EaafBuilderException { +    Pair<String, String> result1 =  BpkBuilder.generateAreaSpecificPersonIdentifier(BASEID,  +          EaafConstants.URN_PREFIX_CDID + "AA", EaafConstants.URN_PREFIX_CDID + "AA"); +     +    Assert.assertEquals("first bPK", BASEID, +        result1.getFirst()); +    Assert.assertEquals("first bPK", "urn:publicid:gv.at:cdid+AA", +        result1.getSecond()); +   +  } +   +  @Test +  public void buildBpk() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_CDID + "AA"); +    Pair<String, String> result2 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_CDID + "BB"); +     +    Assert.assertEquals("first bPK", "b1Ip610zZq/Or/uCqgb51lnAdZM=", +        result1.getFirst()); +    Assert.assertEquals("first bPK", "urn:publicid:gv.at:cdid+AA", +        result1.getSecond()); +     +    Assert.assertEquals("second bPK", "uYst6hjKJvyp7s/ezD8zsnkcj9k=", +        result2.getFirst()); +    Assert.assertEquals("second bPK", "urn:publicid:gv.at:cdid+BB", +        result2.getSecond()); +     +  } +   +  @Test +  public void buildWbpkFn() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "FN+123456i"); +     +    Assert.assertEquals("wbPK", "k65HRxpVcoZ2OPZHo3j2LEn/JQE=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XFN+123456i", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkZvr() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "ZVR+123456"); +     +    Assert.assertEquals("wbPK", "g4JRKGS+AJxd9FU8k2tG8Lxrx6M=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XZVR+123456", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkErsb() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "ERSB+123456"); +     +    Assert.assertEquals("wbPK", "Bjnl0BofeJGgqynJP1r/ff6E1Rk=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XERSB+123456", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkXFn() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "XFN+123456i"); +     +    Assert.assertEquals("wbPK", "k65HRxpVcoZ2OPZHo3j2LEn/JQE=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XFN+123456i", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkXZvr() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "XZVR+123456"); +     +    Assert.assertEquals("wbPK", "g4JRKGS+AJxd9FU8k2tG8Lxrx6M=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XZVR+123456", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkXErsb() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "XERSB+123456"); +     +    Assert.assertEquals("wbPK", "Bjnl0BofeJGgqynJP1r/ff6E1Rk=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XERSB+123456", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildWbpkOthers() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_WBPK + "XABC+123456"); +     +    Assert.assertEquals("wbPK", "wv96/xKUyi6YoYGv7IcIlFTsJIk=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:wbpk+XABC+123456", +        result1.getSecond()); +     +  } +   +  @Test +  public void buildEidasId() throws EaafBuilderException { +     +    Pair<String, String> result1 = BpkBuilder.generateAreaSpecificPersonIdentifier( +        BASEID, EaafConstants.URN_PREFIX_EIDAS + "AT+ES"); +     +    Assert.assertEquals("eidas", "AT/ES/7AuLZNKsiRr97yvLsQ16SZ6r0q0=", +        result1.getFirst()); +    Assert.assertEquals("wbPK", "urn:publicid:gv.at:eidasid+AT+ES", +        result1.getSecond()); +     +  } +   +  @Test +  public void normalizeNullTarget() { +    Assert.assertNull("Wrong normalized target",   +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(null)); +      +  } +   +  @Test +  public void normalizeBpkTarget() { +    String target = EaafConstants.URN_PREFIX_CDID + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(target)); +     +  } +   +  @Test +  public void normalizeWbpkTargetWithX() { +    String target = EaafConstants.URN_PREFIX_WBPK_TARGET_WITH_X + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(target)); +     +  } +   +  @Test +  public void normalizeWbpkTargetWithOutXNoMapping() { +    String target = EaafConstants.URN_PREFIX_WBPK + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(target)); +     +  } +   +  @Test +  public void normalizeWbpkTargetWithOutXMappingFn() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "XFN+123456i",  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(EaafConstants.URN_PREFIX_WBPK + "FN+123456i")); +     +  } +   +  @Test +  public void normalizeWbpkTargetWithOutXMappingZvr() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "XZVR+1122334455",  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(EaafConstants.URN_PREFIX_WBPK + "ZVR+1122334455")); +     +  } +   +  @Test +  public void normalizeWbpkTargetWithOutXMappingErsb() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "XERSB+998877665544",  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(EaafConstants.URN_PREFIX_WBPK + "ERSB+998877665544")); +     +  } +   +  @Test +  public void normalizeEidasTarget() { +    String target = EaafConstants.URN_PREFIX_EIDAS + RandomStringUtils.randomAlphabetic(2)  +        + "+" + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCommonFormat(target)); +     +  } +   +  @Test +  public void calcNormalizeNullTarget() { +    Assert.assertNull("Wrong normalized target",   +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(null)); +      +  } +   +  @Test +  public void calcNormalizeBpkTarget() { +    String target = EaafConstants.URN_PREFIX_CDID + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(target)); +     +  } +   +  @Test +  public void calcNormalizeWbpkTargetWithoutX() { + +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "FN+123456i",  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(EaafConstants.URN_PREFIX_WBPK + "FN+123456i")); +     +  } +   +  @Test +  public void calcNormalizeWbpkTargetWithOutXNoMapping() { +    String target = EaafConstants.URN_PREFIX_WBPK + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(target)); +     +  } +   +  @Test +  public void calcNormalizeWbpkTargetWithXMappingFn() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "FN+123456i",  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(EaafConstants.URN_PREFIX_WBPK + "XFN+123456i")); +     +  } +   +  @Test +  public void calcNormalizeWbpkTargetWithXMappingZvr() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "ZVR+1122334455",  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(EaafConstants.URN_PREFIX_WBPK + "XZVR+1122334455")); +     +  } +   +  @Test +  public void calcNormalizeWbpkTargetWithXMappingErsb() { +    Assert.assertEquals("Wrong normalized target",  +        EaafConstants.URN_PREFIX_WBPK + "ERSB+998877665544",  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(EaafConstants.URN_PREFIX_WBPK + "XERSB+998877665544")); +     +  } +   +  @Test +  public void calcNormalizeEidasTarget() { +    String target = EaafConstants.URN_PREFIX_EIDAS + RandomStringUtils.randomAlphabetic(2)  +        + "+" + RandomStringUtils.randomAlphabetic(2); +    Assert.assertEquals("Wrong normalized target",  +        target,  +        BpkBuilder.normalizeBpkTargetIdentifierToCalculationFormat(target)); +     +  } +   +} | 
