aboutsummaryrefslogtreecommitdiff
path: root/modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java')
-rw-r--r--modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java282
1 files changed, 8 insertions, 274 deletions
diff --git a/modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java b/modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java
index 586749cb..12936a59 100644
--- a/modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java
+++ b/modules/core_common_webapp/src/test/java/at/asitplus/eidas/specific/core/test/utils/AuthenticationDataBuilderTest.java
@@ -1,10 +1,6 @@
package at.asitplus.eidas.specific.core.test.utils;
import static at.asitplus.eidas.specific.core.MsEidasNodeConstants.PROP_CONFIG_SP_NEW_EID_MODE;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.security.PublicKey;
@@ -76,7 +72,6 @@ public class AuthenticationDataBuilderTest {
private TestRequestImpl pendingReq;
private DummySpConfiguration oaParam;
- private Map<String, String> spConfig;
private String eidasBind;
private String authBlock;
@@ -97,7 +92,7 @@ public class AuthenticationDataBuilderTest {
RequestContextHolder.resetRequestAttributes();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(httpReq, httpResp));
- spConfig = new HashMap<>();
+ final Map<String, String> spConfig = new HashMap<>();
spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, "testSp");
spConfig.put("target", "urn:publicid:gv.at:cdid+XX");
spConfig.put(PROP_CONFIG_SP_NEW_EID_MODE, "true");
@@ -111,250 +106,27 @@ public class AuthenticationDataBuilderTest {
authBlock = RandomStringUtils.randomAlphanumeric(20);
eidasBind = RandomStringUtils.randomAlphanumeric(20);
pendingReq.getSessionData(AuthProcessDataWrapper.class)
+ .setGenericDataToSession(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, authBlock);
+ pendingReq.getSessionData(AuthProcessDataWrapper.class)
+ .setGenericDataToSession(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, eidasBind);
+ pendingReq.getSessionData(AuthProcessDataWrapper.class)
.setQaaLevel(EaafConstants.EIDAS_LOA_PREFIX + RandomStringUtils.randomAlphabetic(5));
pendingReq.getSessionData(AuthProcessDataWrapper.class).setGenericDataToSession(
PvpAttributeDefinitions.EID_ISSUING_NATION_NAME,
- RandomStringUtils.randomAlphabetic(2).toUpperCase());
+ RandomStringUtils.randomAlphabetic(2));
LocaleContextHolder.resetLocaleContext();
}
@Test
- public void eidasProxyMode() throws EaafAuthenticationException, EaafStorageException {
+ public void eidMode() throws EaafAuthenticationException {
// initialize state
boolean isTestIdentity = RandomUtils.nextBoolean();
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class).setTestIdentity(isTestIdentity);
pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
-
- String givenName = RandomStringUtils.randomAlphabetic(10);
- String familyName = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirth = "1956-12-08";
- String bpk = RandomStringUtils.randomAlphanumeric(10);
- String cc = pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .getGenericDataFromSession(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class);
- String spC = RandomStringUtils.randomAlphabetic(2).toUpperCase();
-
- spConfig.put("target", EaafConstants.URN_PREFIX_EIDAS + cc + "+" + spC);
-
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setForeigner(false);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.GIVEN_NAME_NAME, givenName);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.PRINCIPAL_NAME_NAME, familyName);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.BIRTHDATE_NAME, dateOfBirth);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER, bpk);
-
- //set LoA level attribute instead of explicit session-data
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.EID_CITIZEN_EIDAS_QAA_LEVEL_NAME,
- pendingReq.getSessionData(AuthProcessDataWrapper.class).getQaaLevel());
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setQaaLevel(null);
-
-
-
- // execute test
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
-
- // validate state
- Assert.assertNotNull("AuthData null", authData);
- Assert.assertNull("authBlock null", authData.getGenericData(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, String.class));
- Assert.assertNull("eidasBind null", authData.getGenericData(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, String.class));
-
- Assert.assertEquals("LoA", pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .getGenericDataFromSession(PvpAttributeDefinitions.EID_CITIZEN_EIDAS_QAA_LEVEL_NAME, String.class),
- authData.getEidasQaaLevel());
- Assert.assertEquals("CitizenCountry", cc, authData.getCiticenCountryCode());
- Assert.assertEquals("familyName", familyName, authData.getFamilyName());
- Assert.assertEquals("givenName", givenName, authData.getGivenName());
- Assert.assertEquals("DateOfBirth", dateOfBirth, authData.getDateOfBirth());
-
- Assert.assertEquals("bPK", pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .getGenericDataFromSession(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER, String.class),
- authData.getGenericData(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER, String.class));
-
- Assert.assertEquals("testIdentity flag",
- isTestIdentity ? EidIdentityStatusLevelValues.TESTIDENTITY : EidIdentityStatusLevelValues.IDENTITY,
- ((EidAuthenticationData)authData).getEidStatus());
- assertFalse("mandate flag", ((EidAuthenticationData)authData).isUseMandate());
-
- }
-
- @Test
- public void eidasProxyModeWithJurMandate() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- injectRepresentativeInfosIntoSession();
-
- String commonMandate = RandomStringUtils.randomAlphabetic(10);
-
- // set constant country-code and sourcePin to check hashed eIDAS identifier
- String sourcePinMandate = "asfdsadfsadfsafsdafsadfasr";
- spConfig.put("target", EaafConstants.URN_PREFIX_EIDAS + "AT+EE");
-
- // set nat. person mandate information
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setUseMandates(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_LEG_PER_FULL_NAME_NAME, commonMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_LEG_PER_SOURCE_PIN_NAME, sourcePinMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME,
- EaafConstants.URN_PREFIX_BASEID + "+XFN");
-
- // execute test
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
-
- // validate state
- Assert.assertNotNull("AuthData null", authData);
- assertTrue("mandate flag", ((EidAuthenticationData)authData).isUseMandate());
-
- //check mandate informations
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_LEG_PER_FULL_NAME_NAME, commonMandate);
- checkGenericAttribute(authData, MsEidasNodeConstants.ATTR_EIDAS_JUR_MANDATOR_PERSONAL_IDENTIFIER,
- "AT/EE/urn:publicid:gv.at:baseid+XFN+asfdsadfsadfsafsdafsadfasr");
-
- }
-
- @Test
- public void eidasProxyModeWithJurMandateMissingAttribute() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- injectRepresentativeInfosIntoSession();
-
- // set constant country-code and sourcePin to check hashed eIDAS identifier
- String sourcePinMandate = "asfdsadfsadfsafsdafsadfasr";
- spConfig.put("target", EaafConstants.URN_PREFIX_EIDAS + "AT+EE");
-
- // set nat. person mandate information
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setUseMandates(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_LEG_PER_SOURCE_PIN_NAME, sourcePinMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME,
- EaafConstants.URN_PREFIX_BASEID + "+XFN");
-
- // execute test
- // execute test
- EaafAuthenticationException error = assertThrows(EaafAuthenticationException.class,
- () -> authenticationDataBuilder.buildAuthenticationData(pendingReq));
- Assert.assertEquals("wrong errorId", "builder.11", error.getErrorId());
-
- }
-
- @Test
- public void eidasProxyModeWithNatMandate() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- injectRepresentativeInfosIntoSession();
-
- String givenNameMandate = RandomStringUtils.randomAlphabetic(10);
- String familyNameMandate = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirthMandate = "1957-09-15";
- String bpkMandate = RandomStringUtils.randomAlphanumeric(10);
-
- // set nat. person mandate information
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setUseMandates(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_GIVEN_NAME_NAME, givenNameMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME, familyNameMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME, dateOfBirthMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BPK_NAME, "AT+XX:" + bpkMandate);
-
- // execute test
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
-
- // validate state
- Assert.assertNotNull("AuthData null", authData);
- assertTrue("mandate flag", ((EidAuthenticationData)authData).isUseMandate());
-
- //check mandate informations
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_GIVEN_NAME_NAME, givenNameMandate);
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME, familyNameMandate);
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME, "1957-09-15");
- checkGenericAttribute(authData, MsEidasNodeConstants.ATTR_EIDAS_NAT_MANDATOR_PERSONAL_IDENTIFIER, bpkMandate);
-
- }
-
- @Test
- public void eidasProxyModeWithNatMandateWrongBpkFormat() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- injectRepresentativeInfosIntoSession();
-
- String givenNameMandate = RandomStringUtils.randomAlphabetic(10);
- String familyNameMandate = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirthMandate = "1957-09-15";
- String bpkMandate = RandomStringUtils.randomAlphanumeric(10);
-
- // set nat. person mandate information
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setUseMandates(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_GIVEN_NAME_NAME, givenNameMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME, familyNameMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME, dateOfBirthMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BPK_NAME, bpkMandate);
-
- // execute test
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
- // validate state
- Assert.assertNotNull("AuthData null", authData);
- assertTrue("mandate flag", ((EidAuthenticationData)authData).isUseMandate());
-
- //check mandate informations
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_GIVEN_NAME_NAME, givenNameMandate);
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME, familyNameMandate);
- checkGenericAttribute(authData, PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME, "1957-09-15");
- checkGenericAttribute(authData, MsEidasNodeConstants.ATTR_EIDAS_NAT_MANDATOR_PERSONAL_IDENTIFIER, bpkMandate);
-
- }
-
- @Test
- public void eidasProxyModeWithNatMandateMissingAttribute() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- injectRepresentativeInfosIntoSession();
-
- String familyNameMandate = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirthMandate = "1957-09-15";
- String bpkMandate = RandomStringUtils.randomAlphanumeric(10);
-
- // set nat. person mandate information
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setUseMandates(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME, familyNameMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME, dateOfBirthMandate);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.MANDATE_NAT_PER_BPK_NAME, bpkMandate);
-
- // execute test
- EaafAuthenticationException error = assertThrows(EaafAuthenticationException.class,
- () -> authenticationDataBuilder.buildAuthenticationData(pendingReq));
- Assert.assertEquals("wrong errorId", "builder.11", error.getErrorId());
-
- }
-
- @Test
- public void eidMode() throws EaafAuthenticationException, EaafStorageException {
- // initialize state
- boolean isTestIdentity = RandomUtils.nextBoolean();
pendingReq.getSessionData(EidAuthProcessDataWrapper.class).setTestIdentity(isTestIdentity);
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, authBlock);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, eidasBind);
-
+
// execute
IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
@@ -439,44 +211,6 @@ public class AuthenticationDataBuilderTest {
}
- private void injectRepresentativeInfosIntoSession() throws EaafStorageException {
- boolean isTestIdentity = RandomUtils.nextBoolean();
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class).setTestIdentity(isTestIdentity);
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
-
- String givenName = RandomStringUtils.randomAlphabetic(10);
- String familyName = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirth = "1956-12-08";
- String bpk = RandomStringUtils.randomAlphanumeric(10);
- String cc = pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .getGenericDataFromSession(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class);
- String spC = RandomStringUtils.randomAlphabetic(2).toUpperCase();
- spConfig.put("target", EaafConstants.URN_PREFIX_EIDAS + cc + "+" + spC);
-
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setForeigner(false);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.GIVEN_NAME_NAME, givenName);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.PRINCIPAL_NAME_NAME, familyName);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.BIRTHDATE_NAME, dateOfBirth);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER, bpk);
-
- //set LoA level attribute instead of explicit session-data
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(PvpAttributeDefinitions.EID_CITIZEN_EIDAS_QAA_LEVEL_NAME,
- pendingReq.getSessionData(AuthProcessDataWrapper.class).getQaaLevel());
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setQaaLevel(null);
-
- }
-
- private void checkGenericAttribute(IAuthData authData, String attrName, String expected) {
- assertEquals("Wrong: " + attrName, expected, authData.getGenericData(attrName, String.class));
-
- }
-
private IIdentityLink buildDummyIdl() {
return new IIdentityLink() {