summaryrefslogtreecommitdiff
path: root/eaaf_core/src/test/java/at/gv
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core/src/test/java/at/gv')
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/AuthenticationDataBuilderTest.java2
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BirthdayAttrBuilderTest.java2
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BpkAttributeBuilderTest.java16
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/PiiTransactionIdAttributeBuilderTest.java64
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateModeAttributeBuilderTest.java64
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateProfilesAttributeBuilderTest.java40
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/TransactionIdAttributeBuilderTest.java60
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilderTest.java453
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/controller/ProtocolFinalizationControllerTest.java359
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthenticationDataTest.java85
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/dummy/DummyDefaultErrorService.java115
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java44
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java12
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/test/DummySpConfiguration.java12
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/spring/test/SpringExpressionEvaluatorTest.java11
15 files changed, 883 insertions, 456 deletions
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 33bd1010..19054634 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
@@ -307,7 +307,7 @@ public class AuthenticationDataBuilderTest {
throw new Exception("GivenName wrong");
}
- if (!authData.getFormatedDateOfBirth().equals("1973-06-04")) {
+ if (!authData.getDateOfBirth().equals("1973-06-04")) {
throw new Exception("DateOfBirth wrong");
}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BirthdayAttrBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BirthdayAttrBuilderTest.java
index 21cf71a9..f155b3b4 100644
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BirthdayAttrBuilderTest.java
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/BirthdayAttrBuilderTest.java
@@ -29,7 +29,7 @@ public class BirthdayAttrBuilderTest extends AbstractAttributeBuilderTest {
final DateFormat format =
new SimpleDateFormat(PvpAttributeDefinitions.BIRTHDATE_FORMAT_PATTERN);
Assert.assertEquals("Birthday does NOT match", authData.getDateOfBirth(),
- format.parse(value));
+ value);
} catch (final Exception e) {
Assert.assertTrue("Attr. builder has an exception", e == null);
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
index 1ad75abc..0619d4d6 100644
--- 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
@@ -9,6 +9,7 @@ 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.AuthenticationData;
import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.BpkAttributeBuilder;
@RunWith(SpringJUnit4ClassRunner.class)
@@ -16,6 +17,21 @@ import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.BpkAttributeBuilder;
public class BpkAttributeBuilderTest extends AbstractAttributeBuilderTest {
private final IAttributeBuilder attrBuilde = new BpkAttributeBuilder();
+
+ @Test
+ public void organwalterBpkTest() throws Exception {
+ spConfigMap.put("target", "urn:publicid:gv.at:cdid+ZP-MH");
+
+ final IAuthData authData = buildAuthData();
+ ((AuthenticationData) authData).setBpkType("urn:publicid:gv.at:cdid+OW");
+
+ final String value = attrBuilde.build(spConfig, authData, gen);
+
+ Assert.assertEquals("Wrong bPK",
+ "OW:" + authData.getBpk(),
+ value);
+
+ }
@Test
public void performTestBpk() throws Exception {
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/PiiTransactionIdAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/PiiTransactionIdAttributeBuilderTest.java
new file mode 100644
index 00000000..82ac0abf
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/PiiTransactionIdAttributeBuilderTest.java
@@ -0,0 +1,64 @@
+package at.gv.egiz.eaaf.core.impl.idp.auth.attributes;
+
+import java.util.UUID;
+
+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.idp.IAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData;
+import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.PiiTransactionIdAttributeBuilder;
+import at.gv.egiz.eaaf.core.impl.utils.TransactionIdUtils;
+
+/**
+ * Attribute builder to generate an attribute that holds the unique TransactionId for this process.
+ * <br>
+ * The attribute-value is read from {@link TransactionIdUtils} with method <code>getTransactionId()</code>
+ *
+ * @author tlenz
+ *
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("/SpringTest-context_eaaf_core.xml")
+public class PiiTransactionIdAttributeBuilderTest extends AbstractAttributeBuilderTest {
+
+ private final IAttributeBuilder attrBuilder = new PiiTransactionIdAttributeBuilder();
+
+ @Test
+ public void attributeName() {
+ Assert.assertEquals("Wrong attribute name",
+ "urn:eidgvat:attributes.piiTransactionId", attrBuilder.getName());
+
+ }
+
+ @Test
+ public void checkEmptyAttribute() {
+ String value = attrBuilder.buildEmpty(gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void noPiiTransactionId() throws AttributeBuilderException, Exception {
+ String value = attrBuilder.build(spConfig, buildAuthData(), gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void withPiiTransactionId() throws AttributeBuilderException, Exception {
+ String piiTransId = UUID.randomUUID().toString();
+ IAuthData authData = buildAuthData();
+ ((AuthenticationData)authData).setGenericData("urn:eidgvat:attributes.piiTransactionId", piiTransId);
+
+ String value = attrBuilder.build(spConfig, authData, gen);
+ Assert.assertEquals("piiTransactionId", piiTransId, value);
+
+ }
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateModeAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateModeAttributeBuilderTest.java
new file mode 100644
index 00000000..dae37a5c
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateModeAttributeBuilderTest.java
@@ -0,0 +1,64 @@
+package at.gv.egiz.eaaf.core.impl.idp.auth.attributes;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
+
+import java.util.NoSuchElementException;
+
+import org.apache.commons.lang3.RandomStringUtils;
+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.ExtendedPvpAttributeDefinitions.SpMandateModes;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.SpMandateModeAttributeBuilder;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("/SpringTest-context_eaaf_core.xml")
+public class SpMandateModeAttributeBuilderTest extends AbstractAttributeBuilderTest {
+
+ private final IAttributeBuilder attrBuilder = new SpMandateModeAttributeBuilder();
+
+ @Test
+ public void attributeName() {
+ Assert.assertEquals("Wrong attribute name",
+ "urn:eidgvat:attributes.ServiceProviderMandateType", attrBuilder.getName());
+
+ }
+
+ @Test
+ public void checkEmptyAttribute() {
+ String value = attrBuilder.buildEmpty(gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void checkyAttribute() throws AttributeBuilderException, Exception {
+ String value = attrBuilder.build(spConfig, buildAuthData(), gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void mandateModeEnumValid() {
+ SpMandateModes mode = SpMandateModes.fromString("forceLegal");
+ assertEquals("wrong mode", SpMandateModes.LEGAL_FORCE, mode);
+ assertEquals("wrong mode toString", "forceLegal", mode.getMode());
+ assertEquals("wrong mode getMode", "forceLegal", mode.toString());
+
+ }
+
+ @Test
+ public void mandateModeEnumInvalid() {
+ assertThrows(NoSuchElementException.class,
+ () -> SpMandateModes.fromString(RandomStringUtils.randomAlphanumeric(5)));
+
+ }
+
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateProfilesAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateProfilesAttributeBuilderTest.java
new file mode 100644
index 00000000..77459975
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/SpMandateProfilesAttributeBuilderTest.java
@@ -0,0 +1,40 @@
+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.idp.IAttributeBuilder;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.SpMandateProfilesAttributeBuilder;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("/SpringTest-context_eaaf_core.xml")
+public class SpMandateProfilesAttributeBuilderTest extends AbstractAttributeBuilderTest {
+
+ private final IAttributeBuilder attrBuilder = new SpMandateProfilesAttributeBuilder();
+
+ @Test
+ public void attributeName() {
+ Assert.assertEquals("Wrong attribute name",
+ "urn:eidgvat:attributes.ServiceProviderMandateProfiles", attrBuilder.getName());
+
+ }
+
+ @Test
+ public void checkEmptyAttribute() {
+ String value = attrBuilder.buildEmpty(gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void checkyAttribute() throws AttributeBuilderException, Exception {
+ String value = attrBuilder.build(spConfig, buildAuthData(), gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/TransactionIdAttributeBuilderTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/TransactionIdAttributeBuilderTest.java
new file mode 100644
index 00000000..d82bdf5c
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/attributes/TransactionIdAttributeBuilderTest.java
@@ -0,0 +1,60 @@
+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.idp.IAttributeBuilder;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.TransactionIdAttributeBuilder;
+import at.gv.egiz.eaaf.core.impl.utils.TransactionIdUtils;
+
+/**
+ * Attribute builder to generate an attribute that holds the unique TransactionId for this process.
+ * <br>
+ * The attribute-value is read from {@link TransactionIdUtils} with method <code>getTransactionId()</code>
+ *
+ * @author tlenz
+ *
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("/SpringTest-context_eaaf_core.xml")
+public class TransactionIdAttributeBuilderTest extends AbstractAttributeBuilderTest {
+
+ private final IAttributeBuilder attrBuilder = new TransactionIdAttributeBuilder();
+
+ @Test
+ public void attributeName() {
+ Assert.assertEquals("Wrong attribute name",
+ "urn:eidgvat:attributes.transactionId", attrBuilder.getName());
+
+ }
+
+ @Test
+ public void checkEmptyAttribute() {
+ String value = attrBuilder.buildEmpty(gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void noTransactionId() throws AttributeBuilderException, Exception {
+ String value = attrBuilder.build(spConfig, buildAuthData(), gen);
+ Assert.assertNull("Attr. not null", value);
+
+ }
+
+ @Test
+ public void withTransactionId() throws AttributeBuilderException, Exception {
+ TransactionIdUtils.setTransactionId();
+ String transId = TransactionIdUtils.getTransactionId();
+ Assert.assertNull("Inputdata is null", transId);
+
+ String value = attrBuilder.build(spConfig, buildAuthData(), gen);
+ Assert.assertEquals("TransactionId", transId, 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
deleted file mode 100644
index 64c13781..00000000
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/BpkBuilderTest.java
+++ /dev/null
@@ -1,453 +0,0 @@
-package at.gv.egiz.eaaf.core.impl.idp.auth.builder;
-
-import java.security.InvalidKeyException;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-
-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.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==";
-
- private KeyPair keyPair;
-
-
- /**
- * jUnit test initializer.
- * @throws NoSuchProviderException In case of an error
- * @throws NoSuchAlgorithmException In case of an error
- */
- @Before
- public void initialize() throws NoSuchAlgorithmException, NoSuchProviderException {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
- keyPair = keyGen.generateKeyPair();
-
- }
-
- @Test
- public void encBpkWrongTarget() throws InvalidKeyException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = RandomStringUtils.randomAlphanumeric(25);
-
- try {
- BpkBuilder.encryptBpk(bpk, target, keyPair.getPublic());
- Assert.fail("Wrong parameters not detected");
-
- } catch (EaafBuilderException e) {
- Assert.assertEquals("Wrong errorMsg", "builder.32", e.getErrorId());
-
- }
- }
-
- @Test
- public void decBpkWrongTarget() throws InvalidKeyException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = RandomStringUtils.randomAlphanumeric(25);
-
- try {
- BpkBuilder.decryptBpk(bpk, target, keyPair.getPrivate());
- Assert.fail("Wrong parameters not detected");
-
- } catch (EaafBuilderException e) {
- Assert.assertEquals("Wrong errorMsg", "builder.32", e.getErrorId());
-
- }
- }
-
- @Test
- public void decBpkWrongTargetInEncBpk() throws InvalidKeyException, EaafBuilderException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = EaafConstants.URN_PREFIX_CDID + "AA";
-
- String encBpk = BpkBuilder.encryptBpk(bpk, target, keyPair.getPublic());
- try {
- BpkBuilder.decryptBpk(encBpk,
- EaafConstants.URN_PREFIX_CDID + "BB", keyPair.getPrivate());
- Assert.fail("Wrong parameters not detected");
-
- } catch (EaafBuilderException e) {
- Assert.assertEquals("Wrong errorMsg", "builder.30", e.getErrorId());
-
- }
- }
-
- @Test
- public void encBpkSuccess() throws EaafBuilderException, InvalidKeyException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = EaafConstants.URN_PREFIX_CDID + "AA";
-
- String encBpk = BpkBuilder.encryptBpk(bpk, target, keyPair.getPublic());
-
- Assert.assertNotNull("encBpk", encBpk);
-
- Pair<String, String> decBpk = BpkBuilder.decryptBpk(encBpk, target, keyPair.getPrivate());
-
- Assert.assertEquals("wrong bBK", bpk, decBpk.getFirst());
- Assert.assertEquals("wrong bBK-Target", target, decBpk.getSecond());
-
- }
-
- @Test
- public void encWbpkSuccess() throws EaafBuilderException, InvalidKeyException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = EaafConstants.URN_PREFIX_WBPK + "XFN+123456i";
-
- String encBpk = BpkBuilder.encryptBpk(bpk, target, keyPair.getPublic());
-
- Assert.assertNotNull("encBpk", encBpk);
-
- Pair<String, String> decBpk = BpkBuilder.decryptBpk(encBpk, target, keyPair.getPrivate());
-
- Assert.assertEquals("wrong bBK", bpk, decBpk.getFirst());
- Assert.assertEquals("wrong bBK-Target", target, decBpk.getSecond());
-
- }
-
- @Test
- public void encWbpkSuccessSecond() throws EaafBuilderException, InvalidKeyException {
- String bpk = RandomStringUtils.randomAlphanumeric(25);
- String target = EaafConstants.URN_PREFIX_WBPK + "FN+123456i";
-
- String encBpk = BpkBuilder.encryptBpk(bpk, target, keyPair.getPublic());
-
- Assert.assertNotNull("encBpk", encBpk);
-
- Pair<String, String> decBpk = BpkBuilder.decryptBpk(encBpk,
- EaafConstants.URN_PREFIX_WBPK + "XFN+123456i", keyPair.getPrivate());
-
- Assert.assertEquals("wrong bBK", bpk, decBpk.getFirst());
- Assert.assertEquals("wrong bBK-Target",
- EaafConstants.URN_PREFIX_WBPK + "XFN+123456i", decBpk.getSecond());
-
- }
-
-
- @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));
-
- }
-
-}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/controller/ProtocolFinalizationControllerTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/controller/ProtocolFinalizationControllerTest.java
new file mode 100644
index 00000000..4341d141
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/controller/ProtocolFinalizationControllerTest.java
@@ -0,0 +1,359 @@
+package at.gv.egiz.eaaf.core.impl.idp.auth.controller;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.util.SerializationUtils;
+
+import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
+import at.gv.egiz.eaaf.core.api.data.EaafConstants;
+import at.gv.egiz.eaaf.core.api.data.ExceptionContainer;
+import at.gv.egiz.eaaf.core.api.gui.GroupDefinition;
+import at.gv.egiz.eaaf.core.api.gui.ModifyableGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
+import at.gv.egiz.eaaf.core.api.utils.IPendingRequestIdGenerationStrategy;
+import at.gv.egiz.eaaf.core.exceptions.EaafException;
+import at.gv.egiz.eaaf.core.impl.gui.AbstractGuiFormBuilderConfiguration;
+import at.gv.egiz.eaaf.core.impl.idp.auth.dummy.DummyDefaultErrorService;
+import at.gv.egiz.eaaf.core.impl.idp.auth.services.IErrorService.ActionType;
+import at.gv.egiz.eaaf.core.impl.idp.auth.services.IErrorService.LogLevel;
+import at.gv.egiz.eaaf.core.impl.idp.controller.ProtocolFinalizationController;
+import at.gv.egiz.eaaf.core.impl.idp.module.gui.DummyGuiBuilderConfigurationFactory;
+import at.gv.egiz.eaaf.core.impl.idp.module.gui.DummyGuiFormBuilder;
+import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySpConfiguration;
+import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration({"/SpringTest-context_eaaf_core.xml", "/SpringTest-context_eaaf_auth.xml"})
+public class ProtocolFinalizationControllerTest {
+
+ @Autowired IConfiguration config;
+ @Autowired ProtocolFinalizationController controller;
+ @Autowired DummyGuiBuilderConfigurationFactory guiConfigFactory;
+ @Autowired DummyGuiFormBuilder guiBuilder;
+ @Autowired IPendingRequestIdGenerationStrategy requestIdValidationStragegy;
+ @Autowired ITransactionStorage storage;
+ @Autowired DummyDefaultErrorService errorService;
+
+ /**
+ * jUnit test initializer.
+ */
+ @Before
+ public void initialize() {
+ errorService.setErrorIdTokenForRedirect(null);
+ errorService.setLogLevel(LogLevel.WARN);
+ errorService.setTicketType(ActionType.NO_TICKET);
+
+ }
+
+ @Test
+ public void performErrorRedirectNoToken() throws EaafException, IOException {
+
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ // perform test
+ controller.errorRedirect(httpReq, httpResp);
+
+ //validate state
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "auth.26", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("auth.26"));
+
+ assertFalse("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+
+ }
+
+ @Test
+ public void performErrorRedirect() throws EaafException, IOException {
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ String token = requestIdValidationStragegy.generateExternalPendingRequestId();
+ httpReq.setParameter(EaafConstants.PARAM_HTTP_ERROR_CODE, token);
+
+ TestRequestImpl protocolRequest = new TestRequestImpl();
+ Map<String, String> spConfig = new HashMap<>();
+ spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
+
+ protocolRequest.setSpConfig(new DummySpConfiguration(spConfig, config));
+ Throwable throwable = new EaafException("internal.00");
+ final ExceptionContainer exceptionContainer = new ExceptionContainer(protocolRequest, throwable);
+ final byte[] serialized = SerializationUtils.serialize(exceptionContainer);
+ storage.put(token, serialized, -1);
+
+ // perform test
+ controller.errorRedirect(httpReq, httpResp);
+
+ //validate state
+ assertNull("Exception not removed from cache", storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(token)));
+
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "internal.00", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("internal.00"));
+
+ assertFalse("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+
+ }
+
+ @Test
+ public void performErrorHandlingNoToken() throws EaafException, IOException {
+
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ // perform test
+ controller.errorHandling(httpReq, httpResp);
+
+ //validate state
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "auth.26", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("auth.26"));
+
+ assertFalse("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+
+ }
+
+ @Test
+ public void performErrorHandlingWithToken() throws EaafException, IOException {
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ String token = requestIdValidationStragegy.generateExternalPendingRequestId();
+ httpReq.setParameter(EaafConstants.PARAM_HTTP_ERROR_CODE, token);
+
+ TestRequestImpl protocolRequest = new TestRequestImpl();
+ Map<String, String> spConfig = new HashMap<>();
+ spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
+
+ protocolRequest.setSpConfig(new DummySpConfiguration(spConfig, config));
+ Throwable throwable = new EaafException("internal.00");
+ final ExceptionContainer exceptionContainer = new ExceptionContainer(protocolRequest, throwable);
+ final byte[] serialized = SerializationUtils.serialize(exceptionContainer);
+ storage.put(token, serialized, -1);
+
+ // perform test
+ controller.errorHandling(httpReq, httpResp);
+
+ //validate state
+
+ assertNull("Exception not removed from cache", storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(token)));
+
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "internal.00", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("internal.00"));
+
+
+ assertFalse("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+ }
+
+ @Test
+ public void performErrorHandlingWithTokenAndRedirect() throws EaafException, IOException {
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ String token = requestIdValidationStragegy.generateExternalPendingRequestId();
+ httpReq.setParameter(EaafConstants.PARAM_HTTP_ERROR_CODE, token);
+
+ TestRequestImpl protocolRequest = new TestRequestImpl();
+ Map<String, String> spConfig = new HashMap<>();
+ spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
+
+ protocolRequest.setSpConfig(new DummySpConfiguration(spConfig, config));
+ protocolRequest.setTransactionId(RandomStringUtils.randomAlphanumeric(10));
+
+ Throwable throwable = new EaafException("internal.00");
+ final ExceptionContainer exceptionContainer = new ExceptionContainer(protocolRequest, throwable);
+ final byte[] serialized = SerializationUtils.serialize(exceptionContainer);
+ storage.put(token, serialized, -1);
+
+ String secondErrorTicket = requestIdValidationStragegy.generateExternalPendingRequestId();
+ errorService.setErrorIdTokenForRedirect(secondErrorTicket);
+ errorService.setTicketType(ActionType.TICKET);
+
+
+ // perform test
+ controller.errorHandling(httpReq, httpResp);
+
+ //validate state
+ assertNull("Exception not removed from cache", storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(token)));
+
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "internal.00", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("internal.00"));
+
+ byte[] secondErrorSerialized = storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(secondErrorTicket), byte[].class);
+ assertNotNull("Exception not removed from cache", secondErrorSerialized);
+ ExceptionContainer secondError = (ExceptionContainer) SerializationUtils.deserialize(secondErrorSerialized);
+ assertEquals("wrong pengingReq", protocolRequest.getUniqueTransactionIdentifier(),
+ secondError.getPendingRequest().getUniqueTransactionIdentifier());
+ assertEquals("wrong exception", throwable.getMessage(), secondError.getExceptionThrown().getMessage());
+
+ assertTrue("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+
+ }
+
+ @Test
+ public void performErrorHandlingWithoutTokenAndRedirect() throws EaafException, IOException {
+ MockHttpServletRequest httpReq = new MockHttpServletRequest("POST", "https://localhost/authhandler");
+ httpReq.addHeader("Accept", "application/json");
+ MockHttpServletResponse httpResp = new MockHttpServletResponse();
+ guiConfigFactory.setErrorGuiConfig(
+ new DummyGuiBuilderConfig("https://localhost/authhandler", "jUnitView", "/junitSubmit"));
+
+ String token = requestIdValidationStragegy.generateExternalPendingRequestId();
+ httpReq.setParameter(EaafConstants.PARAM_HTTP_ERROR_CODE, token);
+
+ TestRequestImpl protocolRequest = new TestRequestImpl();
+ Map<String, String> spConfig = new HashMap<>();
+ spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphabetic(10));
+
+ protocolRequest.setSpConfig(new DummySpConfiguration(spConfig, config));
+ protocolRequest.setTransactionId(RandomStringUtils.randomAlphanumeric(10));
+
+ Throwable throwable = new EaafException("internal.00");
+ final ExceptionContainer exceptionContainer = new ExceptionContainer(protocolRequest, throwable);
+ final byte[] serialized = SerializationUtils.serialize(exceptionContainer);
+ storage.put(token, serialized, -1);
+
+ String secondErrorTicket = requestIdValidationStragegy.generateExternalPendingRequestId();
+ errorService.setErrorIdTokenForRedirect(secondErrorTicket);
+ errorService.setTicketType(ActionType.ERRORPAGE);
+
+ // perform test
+ controller.errorHandling(httpReq, httpResp);
+
+ //validate state
+ assertNull("Exception not removed from cache", storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(token)));
+
+ assertNotNull("No gui builder request", guiBuilder.getConfig());
+ assertFalse("No GUI form infos", guiBuilder.getConfig().getViewParameters().isEmpty());
+ assertTrue("No GUI form infos", guiBuilder.getConfig().getViewParameters().containsKey("msg"));
+ Map<String, Object> params = ((Map<String, Object>) guiBuilder.getConfig().getViewParameters().get("msg"));
+ assertFalse("No GUI form infos", params.isEmpty());
+ assertEquals("wrong intErrorCode", "internal.00", params.get("errorCode"));
+ assertTrue("wrong extErrorCode", ((String) params.get("extErrorCode")).contains("internal.00"));
+
+ byte[] secondErrorSerialized = storage.get(
+ requestIdValidationStragegy.getPendingRequestIdWithOutChecks(secondErrorTicket), byte[].class);
+ assertNotNull("Exception not removed from cache", secondErrorSerialized);
+ ExceptionContainer secondError = (ExceptionContainer) SerializationUtils.deserialize(secondErrorSerialized);
+ assertEquals("wrong pengingReq", protocolRequest.getUniqueTransactionIdentifier(),
+ secondError.getPendingRequest().getUniqueTransactionIdentifier());
+ assertEquals("wrong exception", throwable.getMessage(), secondError.getExceptionThrown().getMessage());
+
+ assertTrue("GUI sp redirect", guiBuilder.getConfig().getViewParameters()
+ .containsKey(DummyDefaultErrorService.JUNIT_EL_SPREDIRECT));
+
+ }
+
+
+ private class DummyGuiBuilderConfig extends AbstractGuiFormBuilderConfiguration
+ implements ModifyableGuiBuilderConfiguration {
+
+ /**
+ * DummyGuiBuilderConfiguration.
+ *
+ * @param authUrl AuthUrl
+ * @param viewName viewName
+ * @param formSubmitEndpoint submit endpoint
+ */
+ DummyGuiBuilderConfig(String authUrl, String viewName, String formSubmitEndpoint) {
+ super(authUrl, viewName, formSubmitEndpoint);
+
+ }
+
+ @Override
+ public String getDefaultContentType() {
+ return null;
+
+ }
+
+ @Override
+ protected void putSpecificViewParameters() {
+
+
+ }
+
+ @Override
+ protected GroupDefinition getFromGroup() {
+ return null;
+
+ }
+
+ @Override
+ public void putCustomParameterWithOutEscaption(GroupDefinition group, String key, Object value) {
+ setViewParameter(group, key, value);
+
+ }
+
+ @Override
+ public void putCustomParameter(GroupDefinition group, String key, String value) {
+ setViewParameter(group, key, value);
+
+ }
+ };
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthenticationDataTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthenticationDataTest.java
new file mode 100644
index 00000000..9d99b158
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthenticationDataTest.java
@@ -0,0 +1,85 @@
+package at.gv.egiz.eaaf.core.impl.idp.auth.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+
+import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData;
+
+@RunWith(BlockJUnit4ClassRunner.class)
+public class AuthenticationDataTest {
+
+ @Test
+ public void formatedDateButNotSet() {
+ AuthenticationData authData = new AuthenticationData();
+ assertNull("formatedDateOfBirth", authData.getDateOfBirthFormated("dd/MM/yyy"));
+
+ }
+
+ @Test
+ public void formatedDateButInvalidPattern() {
+ AuthenticationData authData = new AuthenticationData();
+ authData.setDateOfBirth("1940-01-01");
+ assertNull("formatedDateOfBirth", authData.getDateOfBirthFormated("aa-bb-cccc"));
+
+ }
+
+ @Test
+ public void validDateStatic() {
+ AuthenticationData authData = new AuthenticationData();
+
+ String date = "1940-01-01";
+ authData.setDateOfBirth(date);
+
+ assertNotNull("birthday", authData.getDateOfBirth());
+ assertEquals("birthday attribute", date,
+ authData.getDateOfBirth());
+ assertEquals("birthday attribute", "01/01/1940",
+ authData.getDateOfBirthFormated("dd/MM/yyy"));
+
+ }
+
+
+ @Test
+ public void validButNotUsal() {
+ AuthenticationData authData = new AuthenticationData();
+ authData.setDateOfBirth("1970-00-00");
+
+ assertNotNull("birthday", authData.getDateOfBirth());
+ assertEquals("birthday attribute", "1970-00-00",
+ authData.getDateOfBirth());
+ assertNull("formatedDateOfBirth", authData.getDateOfBirthFormated("dd/MM/yyy"));
+
+ }
+
+ @Test
+ public void invalidDate() {
+ AuthenticationData authData = new AuthenticationData();
+ authData.setDateOfBirth("1970/00/00");
+
+ assertNull("birthday", authData.getDateOfBirth());
+ assertNull("formatedDateOfBirth", authData.getDateOfBirthFormated("dd/MM/yyy"));
+
+ }
+
+
+ @Test
+ public void validDateRandom() {
+ AuthenticationData authData = new AuthenticationData();
+
+ String date = RandomStringUtils.randomNumeric(4) + "-" + RandomStringUtils.randomNumeric(2)
+ + "-" + RandomStringUtils.randomNumeric(2);
+ authData.setDateOfBirth(date);
+
+ assertNotNull("birthday", authData.getDateOfBirth());
+ assertEquals("birthday attribute", date,
+ authData.getDateOfBirth());
+
+ }
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/dummy/DummyDefaultErrorService.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/dummy/DummyDefaultErrorService.java
new file mode 100644
index 00000000..347f9b5c
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/auth/dummy/DummyDefaultErrorService.java
@@ -0,0 +1,115 @@
+package at.gv.egiz.eaaf.core.impl.idp.auth.dummy;
+
+import java.text.MessageFormat;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import at.gv.egiz.eaaf.core.api.IStatusMessenger;
+import at.gv.egiz.eaaf.core.api.gui.ModifyableGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.EaafException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.services.IErrorService;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+public class DummyDefaultErrorService implements IErrorService {
+ private static final String TECH_LOG_MSG = "errorCode={0} Message={1}";
+
+ public static final String JUNIT_EL_SPREDIRECT = "spRedirect";
+
+ @Autowired IConfiguration basicConfig;
+ @Autowired IStatusMessenger statusMessager;
+
+ @Setter
+ private ActionType ticketType = ActionType.NO_TICKET;
+
+ @Setter
+ private LogLevel logLevel = LogLevel.WARN;
+
+ @Setter
+ private String errorIdTokenForRedirect;
+
+ @Override
+ public String getExternalCodeFromInternal(String internalCode) {
+ return statusMessager.mapInternalErrorToExternalError(internalCode);
+
+ }
+
+ @Override
+ public IHandleData createHandleData(Throwable throwable, boolean supportRedirctToSp) throws EaafException {
+ String internalErrorId = extractInternalErrorCode(throwable);
+
+ return HandleData.builder()
+ .throwable(throwable)
+ .internalErrorCode(internalErrorId)
+ .actionType(ticketType)
+ .logLevel(logLevel)
+ .errorIdTokenForRedirect(errorIdTokenForRedirect)
+ .allowSpRedirct(supportRedirctToSp)
+ .build();
+
+ }
+
+ @Override
+ public void displayErrorData(ModifyableGuiBuilderConfiguration c, IHandleData errorData,
+ HttpServletRequest httpReq) throws EaafException {
+ if (((HandleData)errorData).isAllowSpRedirct()) {
+ c.putCustomParameter(null, JUNIT_EL_SPREDIRECT, "toSpWithToken:" + errorData.getErrorIdTokenForRedirect());
+
+ }
+
+
+ }
+
+ private String extractInternalErrorCode(Throwable throwable) {
+ Throwable originalException;
+ if (throwable instanceof TaskExecutionException
+ && ((TaskExecutionException) throwable).getOriginalException() != null) {
+ originalException = ((TaskExecutionException) throwable).getOriginalException();
+
+ } else {
+ originalException = throwable;
+
+ }
+
+ if (!(originalException instanceof EaafException)) {
+ return IStatusMessenger.CODES_INTERNAL_ERROR_GENERIC;
+
+ } else {
+ return ((EaafException) originalException).getErrorId();
+
+ }
+ }
+
+ @Builder
+ static class HandleData implements IHandleData {
+
+ @Getter
+ private boolean allowSpRedirct;
+
+ @Getter
+ private String errorIdTokenForRedirect;
+
+ @Getter
+ private final Throwable throwable;
+
+ @Getter
+ private String internalErrorCode;
+
+ @Getter
+ private ActionType actionType;
+
+ @Getter
+ private LogLevel logLevel;
+
+ public String getPreFormatedErrorMessage() {
+ return MessageFormat.format(TECH_LOG_MSG, internalErrorCode, throwable.getMessage());
+
+ }
+
+ }
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java
new file mode 100644
index 00000000..5e12e7bc
--- /dev/null
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java
@@ -0,0 +1,44 @@
+package at.gv.egiz.eaaf.core.impl.idp.module.gui;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.IGuiFormBuilder;
+import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
+import lombok.Getter;
+
+@Getter
+public class DummyGuiFormBuilder implements IGuiFormBuilder {
+
+ private String loggerName;
+
+ private IGuiBuilderConfiguration config;
+
+ private String contentType;
+
+ @Override
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
+ String loggerName) throws GuiBuildException {
+ this.loggerName = loggerName;
+ this.config = config;
+
+ }
+
+ @Override
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
+ String contentType, String loggerName) throws GuiBuildException {
+ this.loggerName = loggerName;
+ this.config = config;
+ this.contentType = contentType;
+
+ }
+
+ @Override
+ public String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config,
+ String loggerName) throws GuiBuildException {
+ return null;
+
+ }
+
+}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java
index e2cdd1ee..8fe9e2eb 100644
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java
@@ -2,6 +2,11 @@ package at.gv.egiz.eaaf.core.impl.idp.module.gui;
import java.io.InputStream;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.http.MediaType;
+
+import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration;
import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
import at.gv.egiz.eaaf.core.impl.gui.AbstractVelocityGuiFormBuilderImpl;
@@ -30,6 +35,13 @@ public class DummyVelocityGuiFormBuilder extends AbstractVelocityGuiFormBuilderI
this.internalTemplate = internalTemplate;
}
+ @Override
+ public String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config,
+ String loggerName) throws GuiBuildException {
+ return MediaType.TEXT_XML_VALUE;
+
+ }
+
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/test/DummySpConfiguration.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/test/DummySpConfiguration.java
index 87e91609..ed113683 100644
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/test/DummySpConfiguration.java
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/test/DummySpConfiguration.java
@@ -1,7 +1,12 @@
package at.gv.egiz.eaaf.core.impl.idp.module.test;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
import java.util.Map;
+import org.apache.commons.lang3.StringUtils;
+
import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.impl.idp.conf.SpConfigurationImpl;
@@ -19,5 +24,12 @@ public class DummySpConfiguration extends SpConfigurationImpl {
return getConfigurationValue("target");
}
+
+ @Override
+ public List<String> getRequiredLoA() {
+ String loa = getConfigurationValue("loa");
+ return StringUtils.isNotEmpty(loa) ? Arrays.asList(loa) : Collections.emptyList();
+
+ }
}
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/spring/test/SpringExpressionEvaluatorTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/spring/test/SpringExpressionEvaluatorTest.java
index 4aa32360..01fc6bb8 100644
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/spring/test/SpringExpressionEvaluatorTest.java
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/spring/test/SpringExpressionEvaluatorTest.java
@@ -59,8 +59,17 @@ public class SpringExpressionEvaluatorTest {
@Test
public void testEvaluateExpressionWithCtx() {
- ctx.put("myProperty", false);
+ ctx.put("myProperty", false);
+ ctx.put("stringProperty", "aabbccddee");
+
+ //check basic boolean flags
assertFalse(expressionEvaluator.evaluate(ctx, "ctx['myProperty']"));
+
+ //check String flags
+ assertTrue(expressionEvaluator.evaluate(ctx, "'aabbccddee'.equals(ctx['stringProperty'])"));
+ assertFalse(expressionEvaluator.evaluate(ctx, "'aabbccddee'.equals(ctx['notExist'])"));
+ assertFalse(expressionEvaluator.evaluate(ctx, "'aabbccddee'.equals(ctx['myProperty'])"));
+
}
@Test