diff options
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src')
4 files changed, 124 insertions, 3 deletions
| diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationModulImpl.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationModulImpl.java index 41c74217..9a2d49f3 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationModulImpl.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationModulImpl.java @@ -23,6 +23,8 @@  package at.asitplus.eidas.specific.modules.auth.eidas.v2; +import java.io.Serializable; +  import org.apache.commons.lang3.StringUtils;  import at.asitplus.eidas.specific.connector.MsEidasNodeConstants; @@ -62,8 +64,9 @@ public class EidasAuthenticationModulImpl implements AuthModule {     */    @Override    public String selectProcess(ExecutionContext context, IRequest pendingReq) { -    if (StringUtils.isNotBlank((String) context.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY))  -        || StringUtils.isNotBlank((String) context.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY))) { +    Serializable flagObj = context.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY); +    if (flagObj != null && flagObj instanceof String  +        && StringUtils.isNotBlank((String) context.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY))) {        return "eIDASAuthentication_v2";      } else {        return null; diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml index 708fd4e2..fbb48229 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml @@ -40,7 +40,7 @@    </bean>    <bean id="eIDASAuthModule" -    class="at.asitplus.eidas.specific.modules.auth.eidas.v2.eIDASAuthenticationModulImpl"> +    class="at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasAuthenticationModulImpl">      <property name="priority" value="2" />    </bean> diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasAuthenticationModulImplTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasAuthenticationModulImplTest.java new file mode 100644 index 00000000..77935b1b --- /dev/null +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasAuthenticationModulImplTest.java @@ -0,0 +1,113 @@ +package at.asitplus.eidas.specific.modules.auth.eidas.v2.test; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import at.asitplus.eidas.specific.connector.MsEidasNodeConstants; +import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasAuthenticationModulImpl; +import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants; +import at.gv.egiz.eaaf.core.api.idp.IConfiguration; +import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext; +import at.gv.egiz.eaaf.core.impl.idp.auth.modules.ModuleRegistration; +import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyConfiguration; +import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySpConfiguration; +import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl; +import at.gv.egiz.eaaf.core.impl.idp.process.ExecutionContextImpl; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("/SpringTest-context_tasks_test.xml") +public class EidasAuthenticationModulImplTest { + +  @Autowired ModuleRegistration moduleReg;  +  @Autowired ResourceLoader loader; +   +  private final ExecutionContext executionContext = new ExecutionContextImpl(); +  private DummySpConfiguration oaParam; +  private TestRequestImpl pendingReq; +  private EidasAuthenticationModulImpl authProcess = new EidasAuthenticationModulImpl(); + +  /** +   * jUnit class initializer. +   *  +   */ +  public static void classInitializer() { +    final String current = new java.io.File(".").toURI().toString(); +    System.setProperty("eidas.ms.configuration", current + "../basicConfig/default_config.properties"); +     +  } +   +  /** +   * jUnit test set-up. +   *  +   */ +  @Before +  public void initialize() { +    Map<String, String> configMap = new HashMap<String, String>(); +    configMap.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, "http://test.com/test");     +    IConfiguration basicConfig = new DummyConfiguration(); +    oaParam = new DummySpConfiguration(configMap, basicConfig); +    pendingReq = new TestRequestImpl();     +    pendingReq.setSpConfig(oaParam); +  } + +  @Test +  public void checkProcessDefinition() { +    Assert.assertNotNull("AuthModule is null", authProcess); +    Assert.assertNotNull("AuthModule process is null", authProcess.getProcessDefinitions()); +     +    for (String el : authProcess.getProcessDefinitions()) { +      Resource res = loader.getResource(el); +      Assert.assertTrue("AuthProcess description not extist", res.exists()); +       +    }     +  } +   +  @Test +  public void countrySelected() throws Exception { +    executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, RandomStringUtils.randomAlphanumeric(2));     +    final String result = +        moduleReg.selectProcess(executionContext, pendingReq);    +    Assert.assertNotNull("Process is null", result); +    Assert.assertEquals("Process Id not match", "eIDASAuthentication_v2", result); + +  } +   +  @Test +  public void noCountryValid() throws Exception { +    final String result = +        moduleReg.selectProcess(executionContext, pendingReq); +     +    Assert.assertNull("Select wrong process", result); + +  } +   +  @Test +  public void selectCountryWrongType() throws Exception { +    executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, 1); +    final String result = +        moduleReg.selectProcess(executionContext, pendingReq);    +    Assert.assertNull("Select wrong process", result); + +  } +   +  @Test +  public void selectCountryEmpty() throws Exception { +    executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, ""); +    final String result = +        moduleReg.selectProcess(executionContext, pendingReq);    +    Assert.assertNull("Select wrong process", result); + +  } +   +} diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml index 1f198e20..7bf2282f 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml @@ -25,6 +25,11 @@      <property name="priority" value="1" />    </bean> + <bean id="eIDASAuthModule" +    class="at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasAuthenticationModulImpl"> +    <property name="priority" value="2" /> +  </bean> +    <bean id="Default-PostProcessor"      class="at.asitplus.eidas.specific.modules.auth.eidas.v2.handler.GenericEidProcessor">      <property name="priority" value="0" /> | 
