diff options
2 files changed, 6 insertions, 126 deletions
| diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java index 740e5292..0aba70d1 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java @@ -23,21 +23,16 @@  package at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks; -import java.io.IOException; -import java.io.InputStream;  import java.util.List;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import javax.xml.parsers.ParserConfigurationException;  import org.jetbrains.annotations.Nullable;  import org.jose4j.lang.JoseException;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Component;  import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.xml.sax.SAXException;  import com.fasterxml.jackson.core.JsonProcessingException; @@ -64,8 +59,6 @@ import at.gv.egiz.eaaf.core.impl.data.Pair;  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.auth.modules.AbstractAuthServletTask; -import at.gv.egiz.eaaf.core.impl.utils.DomUtils; -import at.gv.egiz.eaaf.core.impl.utils.XPathUtils;  import lombok.Data;  import lombok.extern.slf4j.Slf4j;  import szrservices.IdentityLinkType; @@ -124,21 +117,17 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask {        final SimpleEidasData eidData = MatchingTaskUtils.getInitialEidasData(pendingReq);        MatchedPersonResult matchedPersonData = MatchingTaskUtils.getFinalMatchingResult(pendingReq); +      // write log information based on current configuration        writeMdsLogInformation(eidData); -      if (basicConfig.getBasicConfigurationBoolean(Constants.CONIG_PROPS_EIDAS_SZRCLIENT_DEBUG_USEDUMMY, false)) { -        buildDummyIdentityLink(eidData); +      //request SZR based on IDL or E-ID mode +      if (pendingReq.getServiceProviderConfiguration() +          .isConfigurationValue(MsEidasNodeConstants.PROP_CONFIG_SP_NEW_EID_MODE, false)) { +        executeEidMode(eidData, matchedPersonData);        } else { -        //request SZR based on IDL or E-ID mode -        if (pendingReq.getServiceProviderConfiguration() -            .isConfigurationValue(MsEidasNodeConstants.PROP_CONFIG_SP_NEW_EID_MODE, false)) { -          executeEidMode(eidData, matchedPersonData); +        executeIdlMode(eidData, matchedPersonData); -        } else { -          executeIdlMode(eidData, matchedPersonData); - -        }        }        storeGenericInfoToSession(eidData); @@ -213,21 +202,6 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask {    } -  private void buildDummyIdentityLink(SimpleEidasData eidData) -      throws ParserConfigurationException, SAXException, IOException, EaafException { -    AuthProcessDataWrapper authProcessDataWrapper = MatchingTaskUtils.getAuthProcessDataWrapper(pendingReq); -    SzrResultHolder idlResult = createDummyIdentityLinkForTestDeployment(eidData); -    //inject personal-data into session -    authProcessDataWrapper.setIdentityLink(idlResult.getIdentityLink()); - -    // set bPK and bPKType into auth session -    authProcessDataWrapper.setGenericDataToSession(PvpAttributeDefinitions.BPK_NAME, extendBpkByPrefix( -        idlResult.getBpK(), pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier())); -    authProcessDataWrapper.setGenericDataToSession(PvpAttributeDefinitions.EID_SECTOR_FOR_IDENTIFIER_NAME, -        pendingReq.getServiceProviderConfiguration() -            .getAreaSpecificTargetIdentifier()); -  } -    private void writeExtendedRevisionLogEntry(SimpleEidasData eidData, String personalIdentifier) {      // write ERnP input-data into revision-log      if (basicConfig.getBasicConfigurationBoolean( @@ -343,63 +317,4 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask {      final String bpK;    } - -  /** -   * Build a dummy IdentityLink and a dummy bPK based on eIDAS information. -   * -   * <br><br> -   * <b>FOR LOCAL TESTING ONLY!!!</b> -   * -   * @param eidData Information from eIDAS response -   * @return IdentityLink and bPK -   * @throws ParserConfigurationException In case of an IDL processing error -   * @throws SAXException                 In case of an IDL processing error -   * @throws IOException                  In case of an IDL processing error -   * @throws EaafException                In case of a bPK generation error -   */ -  private SzrResultHolder createDummyIdentityLinkForTestDeployment(SimpleEidasData eidData) -      throws ParserConfigurationException, SAXException, IOException, EaafException { -    log.warn("SZR-Dummy IS ACTIVE! IdentityLink is NOT VALID!!!!"); -    // create fake IdL -    // - fetch IdL template from resources -    final InputStream s = CreateIdentityLinkTask.class -        .getResourceAsStream("/resources/xmldata/fakeIdL_IdL_template.xml"); -    final Element idlTemplate = DomUtils.parseXmlValidating(s); - -    IIdentityLink identityLink = new SimpleIdentityLinkAssertionParser(idlTemplate).parseIdentityLink(); - -    // replace data -    final Element idlassertion = identityLink.getSamlAssertion(); - -    // - set fake baseID; -    final Node prIdentification = XPathUtils -        .selectSingleNode(idlassertion, SimpleIdentityLinkAssertionParser.PERSON_IDENT_VALUE_XPATH); -    prIdentification.getFirstChild().setNodeValue(eidData.getPseudonym()); - -    // - set last name -    final Node prFamilyName = XPathUtils -        .selectSingleNode(idlassertion, SimpleIdentityLinkAssertionParser.PERSON_FAMILY_NAME_XPATH); -    prFamilyName.getFirstChild().setNodeValue(eidData.getFamilyName()); - -    // - set first name -    final Node prGivenName = XPathUtils -        .selectSingleNode(idlassertion, SimpleIdentityLinkAssertionParser.PERSON_GIVEN_NAME_XPATH); -    prGivenName.getFirstChild().setNodeValue(eidData.getGivenName()); - -    // - set date of birth -    final Node prDateOfBirth = XPathUtils -        .selectSingleNode(idlassertion, SimpleIdentityLinkAssertionParser.PERSON_DATE_OF_BIRTH_XPATH); - -    prDateOfBirth.getFirstChild().setNodeValue(eidData.getDateOfBirth()); - -    identityLink = new SimpleIdentityLinkAssertionParser(idlassertion).parseIdentityLink(); - -    String idValue = identityLink.getIdentificationValue(); -    String idType = identityLink.getIdentificationType(); -    String targetId = pendingReq.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier(); -    final Pair<String, String> bpkCalc = BpkBuilder.generateAreaSpecificPersonIdentifier(idValue, idType, targetId); -    return new SzrResultHolder(identityLink, bpkCalc.getFirst()); - -  } -  } diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java index 8dc106f2..4986d5a7 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java @@ -455,41 +455,6 @@ public class CreateIdentityLinkTaskTest {            authProcessData.getGenericDataFromSession(PvpAttributeDefinitions.BPK_NAME));    } -  @Test -  public void buildDummyIdl() throws Exception { -    //initialize test -    String randomTestSp = RandomStringUtils.randomAlphabetic(10); -    pendingReq.setRawDataToTransaction(MsEidasNodeConstants.DATA_REQUESTERID, randomTestSp); - -    basicConfig.putConfigValue("eidas.ms.auth.eIDAS.szrclient.debug.useDummySolution", "true"); - - -    //perform test -    task.execute(pendingReq, executionContext); - - -    //validate state -    // check if pendingRequest was stored -    IRequest storedPendingReq = requestStorage.getPendingRequest(pendingReq.getPendingRequestId()); -    Assert.assertNotNull("pendingReq not stored", storedPendingReq); - -    //check data in session -    final AuthProcessDataWrapper authProcessData = storedPendingReq.getSessionData(AuthProcessDataWrapper.class); -    Assert.assertNotNull("AuthProcessData", authProcessData); -    Assert.assertNull("eidasBind", authProcessData.getGenericDataFromSession(Constants.EIDAS_BIND, String.class)); - -    String authBlock = authProcessData.getGenericDataFromSession(Constants.SZR_AUTHBLOCK, String.class); -    Assert.assertNull("AuthBlock", authBlock); - -    Assert.assertFalse("EID process", authProcessData.isEidProcess()); -    Assert.assertTrue("foreigner process", authProcessData.isForeigner()); -    Assert.assertEquals("EID-ISSUING_NATION", "LU", -        authProcessData.getGenericDataFromSession(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); - -    Assert.assertNotNull("IDL", authProcessData.getIdentityLink()); - -  } -    private void setSzrResponseIdentityLink(String responseXmlPath) throws JAXBException, SZRException_Exception {      final JAXBContext jaxbContext = JAXBContext          .newInstance(szrservices.ObjectFactory.class, org.w3._2001._04.xmldsig_more.ObjectFactory.class, | 
