From 7bf7c3c03fd3a1efeaf3f8e3dd75922e2f5f9921 Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Tue, 8 Mar 2022 19:06:10 +0100
Subject: refactor(core): move all project libs into sub-project 'modules'
---
...iz.components.spring.api.SpringResourceProvider | 1 +
.../resources/eIDAS.Authentication.process.xml | 29 +
.../main/resources/eIDAS/additional-attributes.xml | 42 +
.../src/main/resources/eIDAS/eidas-attributes.xml | 379 +++++++++
.../src/main/resources/eidas_v2_auth.beans.xml | 100 +++
.../resources/xmldata/fakeIdL_IdL_template.xml | 122 +++
.../src/main/resources/szr_client/SZR-1.1.WSDL | 939 +++++++++++++++++++++
.../src/main/resources/szr_client/SZR-1.WSDL | 901 ++++++++++++++++++++
.../src/main/resources/szr_client/SZR_v4.0.wsdl | 441 ++++++++++
.../src/main/resources/szr_client/pvp1.xsd | 133 +++
.../src/main/resources/szr_client/pvp19.xsd | 133 +++
.../src/main/resources/szr_client/szr.xsd | 388 +++++++++
.../src/main/resources/szr_client/szr_ecdsa.xsd | 30 +
.../main/resources/szr_client/szr_persondata.xsd | 54 ++
.../src/main/resources/szr_client/szr_pvp_sec.xsd | 10 +
.../main/resources/szr_client/szr_v4.0-schemas.xml | 54 ++
.../main/resources/szr_client/szr_v4.0-wsdl.xml | 10 +
.../src/main/resources/szr_client/szr_v4.0.xsd | 443 ++++++++++
.../src/main/resources/szr_client/szr_xmldsig.xsd | 31 +
.../resources/templates/eidas_node_forward.html | 36 +
20 files changed, 4276 insertions(+)
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/eIDAS.Authentication.process.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/additional-attributes.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/eidas-attributes.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.1.WSDL
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.WSDL
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR_v4.0.wsdl
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp1.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp19.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_ecdsa.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_persondata.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_pvp_sec.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-schemas.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-wsdl.xml
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_xmldsig.xsd
create mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/templates/eidas_node_forward.html
(limited to 'modules/authmodule-eIDAS-v2/src/main/resources')
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider b/modules/authmodule-eIDAS-v2/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider
new file mode 100644
index 00000000..a8d2991d
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider
@@ -0,0 +1 @@
+at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasAuthenticationSpringResourceProvider
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS.Authentication.process.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS.Authentication.process.xml
new file mode 100644
index 00000000..55bb1ace
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS.Authentication.process.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/additional-attributes.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/additional-attributes.xml
new file mode 100644
index 00000000..a72ac1e8
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/additional-attributes.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Dynamic attributes
+
+ http://eidas.europa.eu/attributes/naturalperson/AdditionalAttribute
+ AdditionalAttribute
+ NaturalPerson
+ false
+ http://www.w3.org/2001/XMLSchema
+ string
+ xs
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalAdditionalAttribute
+ LegalAdditionalAttribute
+ LegalPerson
+ false
+ http://www.w3.org/2001/XMLSchema
+ string
+ xs
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/eidas-attributes.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/eidas-attributes.xml
new file mode 100644
index 00000000..c9288d59
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/eIDAS/eidas-attributes.xml
@@ -0,0 +1,379 @@
+
+
+
+
+
+ eIDAS attributes
+
+ http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
+ PersonIdentifier
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ PersonIdentifierType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName
+ FamilyName
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentFamilyNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
+ FirstName
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentGivenNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/DateOfBirth
+ DateOfBirth
+ NaturalPerson
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ DateOfBirthType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.DateTimeAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/BirthName
+ BirthName
+ NaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ BirthNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth
+ PlaceOfBirth
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ PlaceOfBirthType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentAddress
+ CurrentAddress
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentAddressType
+ eidas-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.CurrentAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/Gender
+ Gender
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ GenderType
+ eidas-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.GenderAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalPersonIdentifier
+ LegalPersonIdentifier
+ LegalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/legalperson
+ LegalPersonIdentifierType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalName
+ LegalName
+ LegalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/legalperson
+ LegalNameType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalPersonAddress
+ LegalAddress
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ LegalPersonAddressType
+ eidas-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.LegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/VATRegistrationNumber
+ VATRegistration
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ VATRegistrationNumberType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/TaxReference
+ TaxReference
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ TaxReferenceType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/D-2012-17-EUIdentifier
+ D-2012-17-EUIdentifier
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ D-2012-17-EUIdentifierType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LEI
+ LEI
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ LEIType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/EORI
+ EORI
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ EORIType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/SEED
+ SEED
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ SEEDType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/SIC
+ SIC
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ SICType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/PersonIdentifier
+ RepresentativePersonIdentifier
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ PersonIdentifierType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentFamilyName
+ RepresentativeFamilyName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentFamilyNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentGivenName
+ RepresentativeFirstName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentGivenNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/DateOfBirth
+ RepresentativeDateOfBirth
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ DateOfBirthType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.DateTimeAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/BirthName
+ RepresentativeBirthName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ BirthNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/PlaceOfBirth
+ RepresentativePlaceOfBirth
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ PlaceOfBirthType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentAddress
+ RepresentativeCurrentAddress
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentAddressType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvCurrentAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/Gender
+ RepresentativeGender
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ GenderType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.GenderAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonIdentifier
+ RepresentativeLegalPersonIdentifier
+ RepresentativeLegalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonIdentifierType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalName
+ RepresentativeLegalName
+ RepresentativeLegalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalNameType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonAddress
+ RepresentativeLegalAddress
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonAddressType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvLegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/VATRegistrationNumber
+ RepresentativeVATRegistration
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ VATRegistrationNumberType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/TaxReference
+ RepresentativeTaxReference
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ TaxReferenceType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/D-2012-17-EUIdentifier
+ RepresentativeD-2012-17-EUIdentifier
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ D-2012-17-EUIdentifierType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LEI
+ RepresentativeLEI
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LEIType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/EORI
+ RepresentativeEORI
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ EORIType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/SEED
+ RepresentativeSEED
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ SEEDType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/SIC
+ RepresentativeSIC
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ SICType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonAddress
+ RepresentativeLegalAddress
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonAddressType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvLegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/VATRegistrationNumber
+ RepresentativeVATRegistration
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ VATRegistrationNumberType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
new file mode 100644
index 00000000..f37516f8
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml b/modules/authmodule-eIDAS-v2/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml
new file mode 100644
index 00000000..91b8e5e4
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+ urn:oasis:names:tc:SAML:1.0:cm:sender-vouches
+
+
+
+
+ wJO/bvDJjUysG0yARn7I6w==
+ urn:publicid:gv.at:baseid
+
+
+ XXXRúùd
+ XXXVàn Nisteĺrooy
+
+
+ 1969-02-13
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4Y4FL09VhczsfYQgFPuycP8quJNZBAAu1R1rFXNodI2711B6BTMjAGQn6xuFWfd3/nyFav/MLTr/
+ t2VazvANS4TRFxJAcWyIx7xbxCdzZr6gJ+FCmq4g5JPrQvt50v3JX+wKSYft1gHBOWlDn90Ia4Gm
+ P8MVuze21T+VVKM6ZklmS6d5PT1er/uYQFydGErmJ17xlSQG6Fi5xuftopBDyJxG1tL1KIebpLFg
+ gaM2EyuB1HxH8/+Mfqa4UgeqIH65
+
+ AQAB
+
+
+
+
+
+
+
+
+
+
+
+ not(ancestor-or-self::pr:Identification)
+
+
+
+
+
+ KEQEPY2O3Z3IRaISSSoRZVPzsHE=
+
+
+
+
+ gzGhjH1kdmPcPbgen0xojNIoJLk=
+
+
+
+
+ 06wqWHgplwpu3N5HMhzb6QC5NkXMO1z4N4oc1L6eDqwZlvFJ9X1XGW//QqviKO9oog3il7IzdfJwnjygR4trgGCIqx+JYCDHJCrG9l8zlxlSW0ZqfsygGXthutcQ1aeUpfO6jYuhnWOUywa8BgzukRtWT+AOJBQZPRYTb8IBmey+uAwlhFLni94eMOd81l+efCvkWi3jRajwsG8ZOaNxSZT3aEV5vj+32Aqtx2MPEVzQWtIA7GqZi+EzcdSdHQvHhg7UB+8kqbU70ENAJbEMTANFZYvLOJ0Om9KfDtPf/+R2TvTc360fNo9RnPl04pHPhCIjcGZhFZorBpUhXFwd2Q==
+
+
+
+ MIIF3TCCBMWgAwIBAgIDByniMA0GCSqGSIb3DQEBBQUAMIGfMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMSIwIAYDVQQLDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMSIwIAYDVQQDDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMB4XDTEwMDcyODExMzY0M1oXDTE1MDcyODExMzY0M1owgbYxCzAJBgNVBAYTAkFUMR4wHAYDVQQKDBVEYXRlbnNjaHV0emtvbW1pc3Npb24xIjAgBgNVBAsMGVN0YW1temFobHJlZ2lzdGVyYmVob2VyZGUxLjAsBgNVBAMMJVNpZ25hdHVyc2VydmljZSBEYXRlbnNjaHV0emtvbW1pc3Npb24xFTATBgNVBAUTDDMyNTkyODMyMzk5ODEcMBoGCSqGSIb3DQEJARYNZHNrQGRzay5ndi5hdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+dBSEBGj2jUXIK1Mp3lVxc/Za+pJMiyKrX3G1ZxgX/ikx7D9scsPYMt473LlAWl9cmCbHbJK+PV2XNNdURLMUCIX+4vUNs2MHeDTQtX8BXjJFpwJYSoaRJQ39FVS/1r5sWcra9Hhdm7w5Gtx/2ukyDX0kdkxawkhP4EQEzi/SI+Fugn+WqgQ1nAdlbxb/dcBw5w1h9b3lmuwUf4z3ooQWUD2DgA/kKd1KejNR43mLUsmvSzevPxT9zs78pOR1OacB7IszTVJPXeOEaaNZHnnB/UeO3g8LEV/3OkXcUgcMkbIIiaBHlll71Pq0COj9kqjXoe7OrRjLY5i3KwOpa6TMCAwEAAaOCAgcwggIDMBMGA1UdIwQMMAqACEkcWDpP6A0DMH8GCCsGAQUFBwEBBHMwcTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMEYGCCsGAQUFBzAChjpodHRwOi8vd3d3LmEtdHJ1c3QuYXQvY2VydHMvYS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMmEuY3J0MFQGA1UdIARNMEswSQYGKigAEQESMD8wPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2NwL2Etc2lnbi1BbXRzc2lnbmF0dXIwgZ4GA1UdHwSBljCBkzCBkKCBjaCBioaBh2xkYXA6Ly9sZGFwLmEtdHJ1c3QuYXQvb3U9YS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMixvPUEtVHJ1c3QsYz1BVD9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0P2Jhc2U/b2JqZWN0Y2xhc3M9ZWlkQ2VydGlmaWNhdGlvbkF1dGhvcml0eTARBgNVHQ4ECgQITAgOnhr0tbowDgYDVR0PAQH/BAQDAgSwMCAGA1UdEQQZMBeBFW1hcmN1cy5oaWxkQGRzay5ndi5hdDAJBgNVHRMEAjAAMA4GByooAAoBBwEEAwEB/zAUBgcqKAAKAQEBBAkMB0JTQi1EU0swDQYJKoZIhvcNAQEFBQADggEBAHTklnvPCH/bJSOlIPbLUEkSGuFHsektSZ8Vr22x/Yv7EzsxoQrJIiz2mQ2gQqFuExdWYxvsowjiSbiis9iUf1c0zscvDS3mIZxGs4M89XHsjHnIyb+Fuwnamw65QrFvM1tNB1ZMjxJ3x+YmHLHdtT3BEBcr3/NCRHd2S0HoBspNz9HVgJaZY1llR7poKBvnAc4g1i+QTvyVb00PtKxR9Lw/9ABInX/1pzpxqrPy7Ib2OP8z6dd3WHmIsCiSHUaj0Dxwwln6fYJjhxZ141SnbovlCLYtrsZLXoi9ljIqX4xO0PwMI2RfNc9cXxTRrRS6rEOvX7PpvgXiDXhp592Yyp4=
+
+
+
+
+
+
+
+
+ not(ancestor-or-self::dsig:Signature)
+
+
+
+
+ 8e7RjLnA4Mgltq5ruIJzheKGxu0=
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.1.WSDL b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.1.WSDL
new file mode 100644
index 00000000..3c34458d
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.1.WSDL
@@ -0,0 +1,939 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.WSDL b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.WSDL
new file mode 100644
index 00000000..4ad2645a
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR-1.WSDL
@@ -0,0 +1,901 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR_v4.0.wsdl b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR_v4.0.wsdl
new file mode 100644
index 00000000..e7f296bd
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/SZR_v4.0.wsdl
@@ -0,0 +1,441 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp1.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp1.xsd
new file mode 100644
index 00000000..09c0b1e3
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp1.xsd
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional authentication properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional authorization properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional principal attributes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp19.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp19.xsd
new file mode 100644
index 00000000..596a2b99
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/pvp19.xsd
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional authentication properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional authorization properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ additional principal attributes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr.xsd
new file mode 100644
index 00000000..85acfb65
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr.xsd
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_ecdsa.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_ecdsa.xsd
new file mode 100644
index 00000000..87ee80be
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_ecdsa.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_persondata.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_persondata.xsd
new file mode 100644
index 00000000..3c9ac932
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_persondata.xsd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_pvp_sec.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_pvp_sec.xsd
new file mode 100644
index 00000000..5001c1b8
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_pvp_sec.xsd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-schemas.xml b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-schemas.xml
new file mode 100644
index 00000000..d40efa45
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-schemas.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-wsdl.xml b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-wsdl.xml
new file mode 100644
index 00000000..f95c35f0
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0-wsdl.xml
@@ -0,0 +1,10 @@
+
+
+
+ false
+
+
+
\ No newline at end of file
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0.xsd
new file mode 100644
index 00000000..2d25f2dc
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_v4.0.xsd
@@ -0,0 +1,443 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_xmldsig.xsd b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_xmldsig.xsd
new file mode 100644
index 00000000..96b50b40
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/szr_client/szr_xmldsig.xsd
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/templates/eidas_node_forward.html b/modules/authmodule-eIDAS-v2/src/main/resources/templates/eidas_node_forward.html
new file mode 100644
index 00000000..186937d7
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/templates/eidas_node_forward.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+ Your login is being processed. Thank you for
+ waiting.
+
+
+
+
+
\ No newline at end of file
--
cgit v1.2.3
From 38d7758281b9cb8ba0f1a7e8a8d10098bcf2dcb8 Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 3 Jun 2022 11:40:52 +0200
Subject: refactor(eidas): split 'authmodule-eIDAS-v2' into 'common-eidas'
code and connector-specific elements
---
build_reporting/pom.xml | 6 +-
.../connector/test/FullStartUpAndProcessTest.java | 22 +--
.../checks/spotbugs-exclude.xml | 8 +-
modules/authmodule-eIDAS-v2/pom.xml | 11 +-
.../specific/modules/auth/eidas/v2/Constants.java | 78 +++------
.../modules/auth/eidas/v2/EidasSignalServlet.java | 2 +-
.../auth/eidas/v2/clients/ernp/ErnpRestClient.java | 23 +--
.../auth/eidas/v2/clients/zmr/ZmrSoapClient.java | 23 +--
.../eidas/v2/handler/AbstractEidProcessor.java | 39 +++--
.../auth/eidas/v2/handler/DeEidProcessor.java | 8 +-
.../handler/DeSpecificDetailSearchProcessor.java | 5 +-
.../v2/service/CcSpecificEidProcessingService.java | 8 +-
.../service/ConnectorEidasAttributeRegistry.java | 107 ++++++++++++
.../eidas/v2/service/EidasAttributeRegistry.java | 180 ---------------------
.../eidas/v2/tasks/CreateIdentityLinkTask.java | 1 +
.../eidas/v2/tasks/GenerateAuthnRequestTask.java | 20 +--
.../tasks/ReceiveAuthnResponseAlternativeTask.java | 5 +-
.../eidas/v2/tasks/ReceiveAuthnResponseTask.java | 8 +-
.../auth/eidas/v2/utils/EidasResponseUtils.java | 43 ++---
.../eidas/v2/validator/EidasResponseValidator.java | 24 +--
.../src/main/resources/eidas_v2_auth.beans.xml | 5 +-
.../auth/eidas/v2/test/EidasSignalServletTest.java | 9 +-
.../v2/test/clients/ZmrClientProductionTest.java | 8 +-
.../auth/eidas/v2/test/clients/ZmrClientTest.java | 8 +-
.../dummy/DummySpecificCommunicationService.java | 66 --------
.../AlternativeSearchTaskWithRegisterTest.java | 15 +-
.../tasks/CreateIdentityLinkTaskEidNewTest.java | 19 +--
.../v2/test/tasks/CreateIdentityLinkTaskTest.java | 11 +-
.../test/tasks/GenerateAuthnRequestTaskTest.java | 7 +-
.../eidas/v2/test/tasks/InitialSearchTaskTest.java | 15 +-
.../tasks/InitialSearchTaskWithRegistersTest.java | 15 +-
.../test/tasks/ReceiveAuthnResponseTaskTest.java | 17 +-
.../test/tasks/ReceiveEidasResponseTaskTest.java | 19 +--
.../EidasAttributePostProcessingTest.java | 15 +-
.../validation/EidasResponseValidatorTest.java | 8 +-
.../resources/SpringTest-context_basic_test.xml | 9 +-
.../resources/SpringTest-context_tasks_test.xml | 14 +-
.../core_commons_eidas/checks/spotbugs-exclude.xml | 9 ++
modules/core_commons_eidas/pom.xml | 174 ++++++++++++++++++++
.../modules/core/eidas/EidasConstants.java | 85 ++++++++++
.../core/eidas/service/EidasAttributeRegistry.java | 102 ++++++++++++
.../dummy/DummySpecificCommunicationService.java | 66 ++++++++
modules/eidas_proxy-sevice/pom.xml | 16 +-
.../msproxyservice/MsProxyServiceConstants.java | 14 +-
.../protocol/EidasProxyServiceController.java | 8 +-
.../protocol/ProxyServiceAuthenticationAction.java | 46 +++---
.../utils/EidasProxyServiceUtils.java | 6 +-
.../protocol/EidasProxyServiceControllerTest.java | 31 ++--
.../ProxyServiceAuthenticationActionTest.java | 76 +++++----
.../spring/SpringTest-context_basic_test.xml | 4 +-
modules/pom.xml | 1 +
.../checks/spotbugs-exclude.xml | 6 +-
ms_specific_proxyservice/pom.xml | 6 +-
.../src/main/webapp/WEB-INF/web.xml | 22 +++
.../src/main/webapp/autocommit.js | 5 +
.../src/main/webapp/css/css_error.css | 26 +++
.../src/main/webapp/img/ajax-loader.gif | Bin 0 -> 673 bytes
.../src/main/webapp/img/globus_eu.png | Bin 0 -> 301722 bytes
.../src/main/webapp/index.html | 24 +++
pom.xml | 20 ++-
60 files changed, 1011 insertions(+), 617 deletions(-)
create mode 100644 modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/ConnectorEidasAttributeRegistry.java
delete mode 100644 modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/EidasAttributeRegistry.java
delete mode 100644 modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/dummy/DummySpecificCommunicationService.java
create mode 100644 modules/core_commons_eidas/checks/spotbugs-exclude.xml
create mode 100644 modules/core_commons_eidas/pom.xml
create mode 100644 modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
create mode 100644 modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/service/EidasAttributeRegistry.java
create mode 100644 modules/core_commons_eidas/src/test/java/at/asitplus/eidas/specific/modules/core/eidas/test/dummy/DummySpecificCommunicationService.java
create mode 100644 ms_specific_proxyservice/src/main/webapp/WEB-INF/web.xml
create mode 100644 ms_specific_proxyservice/src/main/webapp/autocommit.js
create mode 100644 ms_specific_proxyservice/src/main/webapp/css/css_error.css
create mode 100644 ms_specific_proxyservice/src/main/webapp/img/ajax-loader.gif
create mode 100644 ms_specific_proxyservice/src/main/webapp/img/globus_eu.png
create mode 100644 ms_specific_proxyservice/src/main/webapp/index.html
(limited to 'modules/authmodule-eIDAS-v2/src/main/resources')
diff --git a/build_reporting/pom.xml b/build_reporting/pom.xml
index e2b9e99a..fedf9e18 100644
--- a/build_reporting/pom.xml
+++ b/build_reporting/pom.xml
@@ -20,7 +20,11 @@
at.asitplus.eidas.ms_specific
core_common_webapp
-
+
+
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+
at.asitplus.eidas.ms_specific.modules
authmodule-eIDAS-v2
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
index b9525de5..9f62d41e 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
@@ -61,9 +61,9 @@ import at.asitplus.eidas.specific.connector.controller.Pvp2SProfileEndpoint;
import at.asitplus.eidas.specific.connector.provider.PvpEndPointCredentialProvider;
import at.asitplus.eidas.specific.connector.provider.PvpMetadataProvider;
import at.asitplus.eidas.specific.connector.test.saml2.Pvp2SProfileEndPointTest;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
import at.gv.bmi.namespace.zmr_su.base._20040201.WorkflowInfoServer;
import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
@@ -144,7 +144,7 @@ public class FullStartUpAndProcessTest {
private SZR szrMock;
private ServicePort zmrClient;
-
+
private static MockWebServer mockWebServer;
private String cc;
@@ -159,6 +159,8 @@ public class FullStartUpAndProcessTest {
+
+
/**
* jUnit class initializer.
* @throws InterruptedException In case of an error
@@ -425,7 +427,7 @@ public class FullStartUpAndProcessTest {
StatusResponseType saml2 = (StatusResponseType) XMLObjectSupport.unmarshallFromInputStream(
XMLObjectProviderRegistrySupport.getParserPool(),
new ByteArrayInputStream(Base64Utils.decodeFromString(saml2RespB64)));
- Assert.assertEquals("SAML2 status", Constants.SUCCESS_URI, saml2.getStatus().getStatusCode().getValue());
+ Assert.assertEquals("SAML2 status", EidasConstants.SUCCESS_URI, saml2.getStatus().getStatusCode().getValue());
final AssertionAttributeExtractor extractor = new AssertionAttributeExtractor(saml2);
@@ -483,7 +485,7 @@ public class FullStartUpAndProcessTest {
EidasIdentitaetErgebnisType eidasPersonalIdentifier = new EidasIdentitaetErgebnisType();
personInfo.getEidasIdentitaet().add(eidasPersonalIdentifier);
eidasPersonalIdentifier.setEidasWert(pseudonym);
- eidasPersonalIdentifier.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
+ eidasPersonalIdentifier.setEidasArt(EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
eidasPersonalIdentifier.setStaatscode2(cc);
NatuerlichePersonErgebnisType natInfo = new NatuerlichePersonErgebnisType();
@@ -521,20 +523,20 @@ public class FullStartUpAndProcessTest {
//set response from eIDAS node
BinaryLightToken respoToken = springManagedSpecificConnectorCommunicationService.putResponse(
- buildDummyAuthResponse(Constants.SUCCESS_URI, req.getId()));
+ buildDummyAuthResponse(EidasConstants.SUCCESS_URI, req.getId()));
return Base64Utils.encodeToString(respoToken.getTokenBytes());
}
private AuthenticationResponse buildDummyAuthResponse(String statusCode, String reqId) throws URISyntaxException {
final AttributeDefinition> attributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition> attributeDef2 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition> attributeDef3 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition> attributeDef4 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
final ImmutableAttributeMap attributeMap = ImmutableAttributeMap.builder()
.put(attributeDef, personalId)
diff --git a/modules/authmodule-eIDAS-v2/checks/spotbugs-exclude.xml b/modules/authmodule-eIDAS-v2/checks/spotbugs-exclude.xml
index 9b12a750..84efc85d 100644
--- a/modules/authmodule-eIDAS-v2/checks/spotbugs-exclude.xml
+++ b/modules/authmodule-eIDAS-v2/checks/spotbugs-exclude.xml
@@ -23,13 +23,7 @@
-
-
-
-
-
-
-
+
diff --git a/modules/authmodule-eIDAS-v2/pom.xml b/modules/authmodule-eIDAS-v2/pom.xml
index bcec12b6..cfc7ac94 100644
--- a/modules/authmodule-eIDAS-v2/pom.xml
+++ b/modules/authmodule-eIDAS-v2/pom.xml
@@ -45,6 +45,10 @@
at.asitplus.eidas.ms_specific
core_common_lib
+
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+
at.gv.egiz.eaaf
eaaf-core
@@ -194,7 +198,12 @@
test
test-jar
-
+
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+ test
+ test-jar
+
at.gv.egiz.eaaf
eaaf_core_utils
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
index 4b234c41..e766fc49 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/Constants.java
@@ -23,6 +23,7 @@
package at.asitplus.eidas.specific.modules.auth.eidas.v2;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
public class Constants {
@@ -54,21 +55,16 @@ public class Constants {
*/
public static final String DATA_PERSON_MATCH_RESULT = "matching_result";
- // templates for post-binding forwarding
- public static final String TEMPLATE_POST_FORWARD_NAME = "eidas_node_forward.html";
- public static final String TEMPLATE_POST_FORWARD_ENDPOINT = "endPoint";
- public static final String TEMPLATE_POST_FORWARD_TOKEN_NAME = "tokenName";
- public static final String TEMPLATE_POST_FORWARD_TOKEN_VALUE = "tokenValue";
+
// configuration properties
- public static final String CONIG_PROPS_EIDAS_PREFIX = "auth.eIDAS";
-
+
public static final String CONIG_PROPS_EIDAS_WORKAROUND_STAGING_MS_CONNECTOR =
- CONIG_PROPS_EIDAS_PREFIX + ".workarounds.staging.msconnector.endpoint";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".workarounds.staging.msconnector.endpoint";
public static final String CONIG_PROPS_EIDAS_IS_TEST_IDENTITY =
- CONIG_PROPS_EIDAS_PREFIX + ".eid.testidentity.default";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".eid.testidentity.default";
- public static final String CONIG_PROPS_EIDAS_NODE = CONIG_PROPS_EIDAS_PREFIX + ".node_v2";
+ public static final String CONIG_PROPS_EIDAS_NODE = EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".node_v2";
public static final String CONIG_PROPS_EIDAS_NODE_COUNTRYCODE = CONIG_PROPS_EIDAS_NODE + ".countrycode";
public static final String CONIG_PROPS_EIDAS_NODE_PUBLICSECTOR_TARGETS = CONIG_PROPS_EIDAS_NODE
+ ".publicSectorTargets";
@@ -78,15 +74,17 @@ public class Constants {
public static final String CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD = CONIG_PROPS_EIDAS_NODE
+ ".forward.method";
+
public static final String CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_DEFAULT_ONLYNATURAL =
- CONIG_PROPS_EIDAS_NODE + ".attributes.requested.onlynatural";
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".attributes.requested.onlynatural";
public static final String CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_CC_SPECIFIC_ONLYNATURAL =
- CONIG_PROPS_EIDAS_NODE + ".attributes.requested.{0}.onlynatural";
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".attributes.requested.{0}.onlynatural";
public static final String CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_REPRESENTATION =
- CONIG_PROPS_EIDAS_NODE + ".attributes.requested.representation";
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".attributes.requested.representation";
+
public static final String CONIG_PROPS_EIDAS_NODE_REQUESTERID_USE_HASHED_VERSION =
- CONIG_PROPS_EIDAS_NODE + ".requesterId.useHashedForm";
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".requesterId.useHashedForm";
public static final String CONIG_PROPS_EIDAS_NODE_WORKAROUND_USE_STATIC_REQUESTERID_FOR_LUX =
CONIG_PROPS_EIDAS_NODE + ".requesterId.lu.useStaticRequesterForAll";
@@ -107,7 +105,8 @@ public class Constants {
// Common SSL client configuration
- public static final String CONIG_PROPS_EIDAS_COMMON_CLIENT = CONIG_PROPS_EIDAS_PREFIX + ".client.common";
+ public static final String CONIG_PROPS_EIDAS_COMMON_CLIENT =
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".client.common";
public static final String CONIG_PROPS_EIDAS_COMMON_CLIENT_SSL_KEYSTORE_PATH = CONIG_PROPS_EIDAS_COMMON_CLIENT
+ ".ssl.keyStore.path";
public static final String CONIG_PROPS_EIDAS_COMMON_CLIENT_SSL_KEYSTORE_PASSWORD = CONIG_PROPS_EIDAS_COMMON_CLIENT
@@ -131,7 +130,8 @@ public class Constants {
// ZMR Client configuration properties
- public static final String CONIG_PROPS_EIDAS_ZMRCLIENT = CONIG_PROPS_EIDAS_PREFIX + ".zmrclient";
+ public static final String CONIG_PROPS_EIDAS_ZMRCLIENT =
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".zmrclient";
public static final String CONIG_PROPS_EIDAS_ZMRCLIENT_ENDPOINT = CONIG_PROPS_EIDAS_ZMRCLIENT
+ ".endpoint";
public static final String CONIG_PROPS_EIDAS_ZMRCLIENT_DEBUG_TRACEMESSAGES = CONIG_PROPS_EIDAS_ZMRCLIENT
@@ -168,7 +168,8 @@ public class Constants {
+ ".ssl.trustStore.name";
// ErnP Client configuration properties
- public static final String CONIG_PROPS_EIDAS_ERNPCLIENT = CONIG_PROPS_EIDAS_PREFIX + ".ernpclient";
+ public static final String CONIG_PROPS_EIDAS_ERNPCLIENT =
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".ernpclient";
public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_ENDPOINT = CONIG_PROPS_EIDAS_ERNPCLIENT
+ ".endpoint";
public static final String CONIG_PROPS_EIDAS_ERNPCLIENT_SSL_KEYSTORE_PATH = CONIG_PROPS_EIDAS_ERNPCLIENT
@@ -203,7 +204,8 @@ public class Constants {
// SZR Client configuration properties
- public static final String CONIG_PROPS_EIDAS_SZRCLIENT = CONIG_PROPS_EIDAS_PREFIX + ".szrclient";
+ public static final String CONIG_PROPS_EIDAS_SZRCLIENT =
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".szrclient";
public static final String CONIG_PROPS_EIDAS_SZRCLIENT_USETESTSERVICE = CONIG_PROPS_EIDAS_SZRCLIENT
+ ".useTestService";
public static final String CONIG_PROPS_EIDAS_SZRCLIENT_DEBUG_TRACEMESSAGES = CONIG_PROPS_EIDAS_SZRCLIENT
@@ -261,7 +263,7 @@ public class Constants {
public static final String CONIG_PROPS_EIDAS_SZRCLIENT_WORKAROUND_REVISIONLOGDATASTORE_ACTIVE =
CONIG_PROPS_EIDAS_SZRCLIENT + ".revisionlog.eidmapping.active";
- public static final String DEFAULT_MS_NODE_COUNTRY_CODE = "AT";
+
@Deprecated
public static final String CONIG_PROPS_EIDAS_SZRCLIENT_WORKAROUND_SQLLITEDATASTORE_URL =
@@ -279,50 +281,12 @@ public class Constants {
// eIDAS request parameters
public static final String eIDAS_REQ_NAMEID_FORMAT = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent";
- // eIDAS attribute names
- public static final String eIDAS_ATTR_PERSONALIDENTIFIER = "PersonIdentifier";
- public static final String eIDAS_ATTR_DATEOFBIRTH = "DateOfBirth";
- public static final String eIDAS_ATTR_CURRENTGIVENNAME = "FirstName";
- public static final String eIDAS_ATTR_CURRENTFAMILYNAME = "FamilyName";
- public static final String eIDAS_ATTR_PLACEOFBIRTH = "PlaceOfBirth";
- public static final String eIDAS_ATTR_BIRTHNAME = "BirthName";
- public static final String eIDAS_ATTR_CURRENTADDRESS = "CurrentAddress";
- public static final String eIDAS_ATTR_TAXREFERENCE = "TaxReference";
-
- public static final String eIDAS_ATTR_LEGALPERSONIDENTIFIER = "LegalPersonIdentifier";
- public static final String eIDAS_ATTR_LEGALNAME = "LegalName";
-
- public static final String eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER = "RepresentativePersonIdentifier";
- public static final String eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH = "RepresentativeDateOfBirth";
- public static final String eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME = "RepresentativeFirstName";
- public static final String eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME = "RepresentativeFamilyName";
-
- //eIDAS attribute URN
- public static final String eIDAS_ATTRURN_PREFIX = "http://eidas.europa.eu/attributes/";
- public static final String eIDAS_ATTRURN_PREFIX_NATURAL = eIDAS_ATTRURN_PREFIX + "naturalperson/";
-
- public static final String eIDAS_ATTRURN_PERSONALIDENTIFIER =
- eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_PERSONALIDENTIFIER;
- public static final String eIDAS_ATTRURN_CURRENTGIVENNAME =
- eIDAS_ATTRURN_PREFIX_NATURAL + "CurrentGivenName";
- public static final String eIDAS_ATTRURN_CURRENTFAMILYNAME =
- eIDAS_ATTRURN_PREFIX_NATURAL + "CurrentFamilyName";
- public static final String eIDAS_ATTRURN_DATEOFBIRTH =
- eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_DATEOFBIRTH;
- public static final String eIDAS_ATTRURN_PLACEOFBIRTH =
- eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_PLACEOFBIRTH;
- public static final String eIDAS_ATTRURN_BIRTHNAME =
- eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_BIRTHNAME;
-
public static final String eIDAS_REQ_PARAM_SECTOR_PUBLIC = "public";
public static final String eIDAS_REQ_PARAM_SECTOR_PRIVATE = "private";
public static final String POLICY_DEFAULT_ALLOWED_TARGETS =
EaafConstants.URN_PREFIX_CDID.replaceAll("\\.", "\\\\.").replaceAll("\\+", "\\\\+") + ".*";
- // SAML2 Constants
- public static final String SUCCESS_URI = "urn:oasis:names:tc:SAML:2.0:status:Success";
- public static final String ERROR_URI = "urn:oasis:names:tc:SAML:2.0:status:Responder";
public static final String HTTP_CLIENT_DEFAULT_TIMEOUT_CONNECTION = "30"; // seconds
public static final String HTTP_CLIENT_DEFAULT_TIMEOUT_RESPONSE = "60"; // seconds
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
index d3cac80c..e3600329 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
@@ -40,7 +40,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import com.google.common.collect.ImmutableSortedSet;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractProcessEngineSignalController;
import eu.eidas.auth.commons.EidasParameterKeys;
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
index 119a7c60..a847a519 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/ernp/ErnpRestClient.java
@@ -65,6 +65,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenti
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.ErnpRestCommunicationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.WorkflowException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.VersionHolder;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201_.ServiceFault;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.EidasSuchdatenType;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenRequest;
@@ -104,7 +105,7 @@ public class ErnpRestClient implements IErnpClient {
// "ERnP anwser for transaction: {0} with code: {1} and message: {2}";
private static final String PROCESS_SEARCH_PERSONAL_IDENTIFIER =
- "Searching " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER;
+ "Searching " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER;
private static final String PROCESS_SEARCH_MDS_ONLY = "Searching with MDS only";
private static final String PROCESS_SEARCH_COUNTRY_SPECIFIC = "Searching {0} specific";
@@ -139,7 +140,7 @@ public class ErnpRestClient implements IErnpClient {
// build search request
final SuchEidas eidasInfos = new SuchEidas();
- eidasInfos.setArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
+ eidasInfos.setArt(EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
eidasInfos.setWert(personIdentifier);
eidasInfos.setStaatscode2(citizenCountryCode);
@@ -427,15 +428,15 @@ public class ErnpRestClient implements IErnpClient {
// build result
return RegisterResult.builder()
.pseudonym(selectAllEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
.familyName(person.getPersonendaten().getFamilienname())
.givenName(person.getPersonendaten().getVorname())
.dateOfBirth(getTextualBirthday(person.getPersonendaten().getGeburtsdatum()))
.bpk(person.getPersonendaten().getBpkZp())
.placeOfBirth(selectSingleEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH))
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH))
.birthName(selectSingleEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_BIRTHNAME))
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME))
.build();
}
@@ -501,11 +502,11 @@ public class ErnpRestClient implements IErnpClient {
//TODO: maybe we should re-factor SimpleEidasData to a generic data-model to facilitate arbitrary eIDAS attributes
Set result = new HashSet<>();
addEidasDocumentIfNotAvailable(result, ernpPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym(), true);
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym(), true);
addEidasDocumentIfNotAvailable(result, ernpPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth(), false);
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth(), false);
addEidasDocumentIfNotAvailable(result, ernpPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName(), false);
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName(), false);
return result;
@@ -596,17 +597,17 @@ public class ErnpRestClient implements IErnpClient {
private void buildNewEidasDocumens(PersonAnlegen ernpReq, SimpleEidasData eidData) {
ernpReq.addEidasItem(buildNewEidasDocument(eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym()));
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym()));
if (StringUtils.isNotEmpty(eidData.getPlaceOfBirth())) {
ernpReq.addEidasItem(buildNewEidasDocument(eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth()));
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth()));
}
if (StringUtils.isNotEmpty(eidData.getBirthName())) {
ernpReq.addEidasItem(buildNewEidasDocument(eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName()));
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName()));
}
}
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
index 8dbd0632..904afc37 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/clients/zmr/ZmrSoapClient.java
@@ -31,6 +31,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenti
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.WorkflowException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.ZmrCommunicationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.VersionHolder;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201.ClientInfoType;
import at.gv.bmi.namespace.zmr_su.base._20040201.Organisation;
import at.gv.bmi.namespace.zmr_su.base._20040201.RequestType;
@@ -95,7 +96,7 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
private static final String PROCESS_TASK_UPDATE = "ZPR_VO_Person_aendern";
private static final String PROCESS_SEARCH_PERSONAL_IDENTIFIER =
- "Searching " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER;
+ "Searching " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER;
private static final String PROCESS_SEARCH_MDS_ONLY = "Searching with MDS only";
private static final String PROCESS_SEARCH_COUNTRY_SPECIFIC = "Searching {0} specific";
private static final String PROCESS_SEARCH_BY_RESIDENCE = "Searching by residence";
@@ -133,7 +134,7 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
req.setPersonSuchenRequest(searchPersonReq);
final EidasSuchdatenType eidasInfos = new EidasSuchdatenType();
searchPersonReq.getEidasSuchdaten().add(eidasInfos);
- eidasInfos.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
+ eidasInfos.setEidasArt(EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
eidasInfos.setEidasWert(personPseudonym);
eidasInfos.setStaatscode2(citizenCountryCode);
@@ -589,15 +590,15 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
// build result
return RegisterResult.builder()
.pseudonym(selectAllEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER))
.familyName(person.getNatuerlichePerson().getPersonenName().getFamilienname())
.givenName(person.getNatuerlichePerson().getPersonenName().getVorname())
.dateOfBirth(person.getNatuerlichePerson().getGeburtsdatum())
.bpk(extractBpkZp(person.getNatuerlichePerson()))
.placeOfBirth(selectSingleEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH))
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH))
.birthName(selectSingleEidasDocument(person, citizenCountryCode,
- Constants.eIDAS_ATTRURN_BIRTHNAME))
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME))
.build();
}
@@ -765,19 +766,19 @@ public class ZmrSoapClient extends AbstractSoapClient implements IZmrClient {
//TODO: maybe we should re-factor SimpleEidasData to a generic data-model to facilitate arbitrary eIDAS attributes
Set result = new HashSet<>();
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym(), true);
+ EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER, eidData.getPseudonym(), true);
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth(), false);
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth(), false);
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName(), false);
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName(), false);
// add MDS attributes as 'eIDAS-Documents' too, because ZMR does not allow a MDS update on regular places.
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_CURRENTGIVENNAME, eidData.getGivenName(), false);
+ EidasConstants.eIDAS_ATTRURN_CURRENTGIVENNAME, eidData.getGivenName(), false);
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_CURRENTFAMILYNAME, eidData.getFamilyName(), false);
+ EidasConstants.eIDAS_ATTRURN_CURRENTFAMILYNAME, eidData.getFamilyName(), false);
addEidasDocumentIfNotAvailable(result, zmrPersonToKitt, eidData.getCitizenCountryCode(),
- Constants.eIDAS_ATTRURN_DATEOFBIRTH, eidData.getDateOfBirth(), false);
+ EidasConstants.eIDAS_ATTRURN_DATEOFBIRTH, eidData.getDateOfBirth(), false);
return result;
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
index f626e986..8716f80d 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/AbstractEidProcessor.java
@@ -48,8 +48,9 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.ConnectorEidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.e_government.reference.namespace.persondata._20020228.PostalAddressType;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
@@ -65,7 +66,7 @@ import lombok.extern.slf4j.Slf4j;
public abstract class AbstractEidProcessor implements INationalEidProcessor {
@Autowired
- protected EidasAttributeRegistry attrRegistry;
+ protected ConnectorEidasAttributeRegistry attrRegistry;
@Autowired
protected IConfigurationWithSP basicConfig;
@@ -81,28 +82,31 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
@Override
public final SimpleEidasData postProcess(Map eidasAttrMap) throws EidPostProcessingException,
EidasAttributeException {
+
SimpleEidasData.SimpleEidasDataBuilder builder = SimpleEidasData.builder()
.personalIdentifier(EidasResponseUtils.processPersonalIdentifier(
- eidasAttrMap.get(Constants.eIDAS_ATTR_PERSONALIDENTIFIER)))
+ eidasAttrMap.get(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER)))
// MDS attributes
- .citizenCountryCode(processCountryCode(eidasAttrMap.get(Constants.eIDAS_ATTR_PERSONALIDENTIFIER)))
- .pseudonym(processPseudonym(eidasAttrMap.get(Constants.eIDAS_ATTR_PERSONALIDENTIFIER)))
- .familyName(processFamilyName(eidasAttrMap.get(Constants.eIDAS_ATTR_CURRENTFAMILYNAME)))
- .givenName(processGivenName(eidasAttrMap.get(Constants.eIDAS_ATTR_CURRENTGIVENNAME)))
- .dateOfBirth(processDateOfBirthToString(eidasAttrMap.get(Constants.eIDAS_ATTR_DATEOFBIRTH)))
+ .citizenCountryCode(processCountryCode(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER)))
+ .pseudonym(processPseudonym(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER)))
+ .familyName(processFamilyName(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME)))
+ .givenName(processGivenName(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME)))
+ .dateOfBirth(processDateOfBirthToString(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_DATEOFBIRTH)))
// additional attributes
- .placeOfBirth(processPlaceOfBirth(eidasAttrMap.get(Constants.eIDAS_ATTR_PLACEOFBIRTH)))
- .birthName(processBirthName(eidasAttrMap.get(Constants.eIDAS_ATTR_BIRTHNAME)))
- .address(processAddress(eidasAttrMap.get(Constants.eIDAS_ATTR_CURRENTADDRESS)));
+ .placeOfBirth(processPlaceOfBirth(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH)))
+ .birthName(processBirthName(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_BIRTHNAME)))
+ .address(processAddress(eidasAttrMap.get(EidasConstants.eIDAS_ATTR_CURRENTADDRESS)));
- if (eidasAttrMap.containsKey(Constants.eIDAS_ATTR_TAXREFERENCE)) {
- builder.taxNumber(EidasResponseUtils.processTaxReference(eidasAttrMap.get(Constants.eIDAS_ATTR_TAXREFERENCE)));
+ if (eidasAttrMap.containsKey(EidasConstants.eIDAS_ATTR_TAXREFERENCE)) {
+ builder.taxNumber(EidasResponseUtils.processTaxReference(
+ eidasAttrMap.get(EidasConstants.eIDAS_ATTR_TAXREFERENCE)));
}
return builder.build();
+
}
@@ -125,6 +129,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected PostalAddressType processAddress(Object currentAddressObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processAddress(currentAddressObj);
+
}
/**
@@ -138,6 +143,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected String processBirthName(Object birthNameObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processBirthName(birthNameObj);
+
}
/**
@@ -151,6 +157,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected String processPlaceOfBirth(Object placeOfBirthObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processPlaceOfBirth(placeOfBirthObj);
+
}
/**
@@ -164,6 +171,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected DateTime processDateOfBirth(Object dateOfBirthObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processDateOfBirth(dateOfBirthObj);
+
}
/**
@@ -177,6 +185,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected String processGivenName(Object givenNameObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processGivenName(givenNameObj);
+
}
/**
@@ -190,6 +199,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected String processFamilyName(Object familyNameObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processFamilyName(familyNameObj);
+
}
/**
@@ -203,6 +213,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
protected String processPseudonym(Object personalIdObj) throws EidPostProcessingException,
EidasAttributeException {
return EidasResponseUtils.processPseudonym(personalIdObj);
+
}
/**
@@ -334,7 +345,7 @@ public abstract class AbstractEidProcessor implements INationalEidProcessor {
final ImmutableAttributeMap.Builder builder = ImmutableAttributeMap.builder();
for (final Map.Entry attribute : requiredAttributes.entrySet()) {
final String name = attribute.getKey();
- final ImmutableSortedSet> byFriendlyName = attrRegistry
+ final ImmutableSortedSet> byFriendlyName = attrRegistry.getCoreRegistry()
.getCoreAttributeRegistry().getByFriendlyName(name);
if (!byFriendlyName.isEmpty()) {
final AttributeDefinition> attributeDefinition = byFriendlyName.first();
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeEidProcessor.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeEidProcessor.java
index 6dc08181..2c1e8fdd 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeEidProcessor.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeEidProcessor.java
@@ -32,10 +32,10 @@ import org.apache.commons.codec.binary.Hex;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.egiz.eaaf.core.impl.data.Triple;
@@ -70,15 +70,15 @@ public class DeEidProcessor extends AbstractEidProcessor {
protected String processPseudonym(Object uniqeIdentifierObj) throws EidPostProcessingException,
EidasAttributeException {
if (uniqeIdentifierObj == null || !(uniqeIdentifierObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
}
final Triple eIdentifier =
EidasResponseUtils.parseEidasPersonalIdentifier((String) uniqeIdentifierObj);
- log.trace(getName() + " starts processing of attribute: " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ log.trace(getName() + " starts processing of attribute: " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
final String result = convertDeIdentifier(eIdentifier.getThird());
- log.debug(getName() + " finished processing of attribute: " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ log.debug(getName() + " finished processing of attribute: " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
return result;
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java
index e05fe86b..64db9eed 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/DeSpecificDetailSearchProcessor.java
@@ -27,6 +27,7 @@ import org.apache.commons.lang3.StringUtils;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.EidasSuchdatenType;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenRequest;
import at.gv.e_government.reference.namespace.persondata.de._20040201.NatuerlichePersonTyp;
@@ -62,9 +63,9 @@ public class DeSpecificDetailSearchProcessor implements CountrySpecificDetailSea
//add addtional eIDAS attributes from DE
req.getEidasSuchdaten().add(buildEidasSuchData(
- Constants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth()));
+ EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, eidData.getPlaceOfBirth()));
req.getEidasSuchdaten().add(buildEidasSuchData(
- Constants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName()));
+ EidasConstants.eIDAS_ATTRURN_BIRTHNAME, eidData.getBirthName()));
return req;
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
index b5493edb..bbfcb5ff 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
@@ -32,7 +32,6 @@ import java.util.Map.Entry;
import javax.annotation.PostConstruct;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,11 +39,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.handler.INationalEidProcessor;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.impl.data.Triple;
import eu.eidas.auth.commons.light.impl.LightRequest.Builder;
@@ -107,9 +107,9 @@ public class CcSpecificEidProcessingService implements ICcSpecificEidProcessingS
public SimpleEidasData postProcess(Map eidasAttrMap) throws EidPostProcessingException,
EidasAttributeException {
// extract citizen country from eIDAS unique identifier
- final Object eIdentifierObj = eidasAttrMap.get(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ final Object eIdentifierObj = eidasAttrMap.get(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
if (eIdentifierObj == null || !(eIdentifierObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
}
final Triple eIdentifier =
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/ConnectorEidasAttributeRegistry.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/ConnectorEidasAttributeRegistry.java
new file mode 100644
index 00000000..8a120093
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/ConnectorEidasAttributeRegistry.java
@@ -0,0 +1,107 @@
+package at.asitplus.eidas.specific.modules.auth.eidas.v2.service;
+
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.lang.NonNull;
+
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
+import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
+import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class ConnectorEidasAttributeRegistry {
+
+ @Autowired IConfigurationWithSP basicConfig;
+
+ @Getter
+ private EidasAttributeRegistry coreRegistry;
+
+ /**
+ * Attribute Registry for eIDAS Connector implementation.
+ * @param registry Core attribute registry
+ */
+ public ConnectorEidasAttributeRegistry(@Autowired EidasAttributeRegistry registry) {
+ this.coreRegistry = registry;
+
+ }
+
+
+ /**
+ * Get Map of attributes that are requested by default.
+ *
+ * @return Map of AttributeIdentifier, isRequired flag
+ */
+ @NonNull
+ public Map getDefaultAttributeSetFromConfiguration() {
+ /*
+ * TODO: select set for representation if mandates should be used. It's an open
+ * task in respect to requested eIDAS attributes and isRequired flag, because
+ * there can be a decision problem in case of natural or legal person
+ * representation! From an Austrian use-case point of view, an Austrian service
+ * provider can support mandates for natural and legal persons at the same time.
+ * However, we CAN NOT request attributes for natural AND legal persons on the
+ * same time, because it's not possible to represent both simultaneously.
+ */
+ final Map configAttributes =
+ basicConfig.getBasicConfigurationWithPrefix(
+ Constants.CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_DEFAULT_ONLYNATURAL);
+ return processAttributeInfosFromConfig(configAttributes);
+
+ }
+
+ /**
+ * Get a Map of attributes that are additionally requested for a specific country.
+ *
+ * @param countryCode Country Code
+ * @return Map of AttributeIdentifier, isRequired flag
+ */
+ @NonNull
+ public Map getAttributeSetFromConfiguration(String countryCode) {
+
+ /*
+ * TODO: select set for representation if mandates should be used. It's an open
+ * task in respect to requested eIDAS attributes and isRequired flag, because
+ * there can be a decision problem in case of natural or legal person
+ * representation! From an Austrian use-case point of view, an Austrian service
+ * provider can support mandates for natural and legal persons at the same time.
+ * However, we CAN NOT request attributes for natural AND legal persons on the
+ * same time, because it's not possible to represent both simultaneously.
+ */
+ final Map configAttributes =
+ basicConfig.getBasicConfigurationWithPrefix(
+ MessageFormat.format(
+ Constants.CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_CC_SPECIFIC_ONLYNATURAL,
+ countryCode.toLowerCase()));
+ return processAttributeInfosFromConfig(configAttributes);
+
+ }
+
+ private Map processAttributeInfosFromConfig(Map configAttributes) {
+
+ final Map result = new HashMap<>();
+ for (final String el : configAttributes.values()) {
+ if (StringUtils.isNotEmpty(el.trim())) {
+ final List attrDef = KeyValueUtils.getListOfCsvValues(el.trim());
+ boolean isRequired = false;
+ if (attrDef.size() == 2) {
+ isRequired = Boolean.parseBoolean(attrDef.get(1));
+ }
+
+ result.put(attrDef.get(0), isRequired);
+
+ }
+ }
+
+ log.trace("Load #" + result.size() + " requested attributes from configuration");
+ return result;
+
+ }
+}
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/EidasAttributeRegistry.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/EidasAttributeRegistry.java
deleted file mode 100644
index e73491ab..00000000
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/EidasAttributeRegistry.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
-*/
-
-package at.asitplus.eidas.specific.modules.auth.eidas.v2.service;
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.lang.NonNull;
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
-import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
-import eu.eidas.auth.commons.attribute.AttributeRegistries;
-import eu.eidas.auth.commons.attribute.AttributeRegistry;
-
-@Service("attributeRegistry")
-public class EidasAttributeRegistry {
- private static final Logger log = LoggerFactory.getLogger(EidasAttributeRegistry.class);
- @Autowired
- private IConfigurationWithSP basicConfig;
-
- private AttributeRegistry coreAttributeRegistry;
-
- private String eidasAttributesFile;
- private String additionalAttributesFile;
-
- @PostConstruct
- private void initialize() throws RuntimeException {
- try {
- if (eidasAttributesFile.isEmpty()) {
- log.error("Basic eIDAS addribute definition NOT defined");
- throw new EaafConfigurationException("config.30",
- new Object[] { "eidas-attributes.xml" });
-
- }
-
- boolean additionalAttrAvailabe = false;
- if (!additionalAttributesFile.isEmpty()) {
- final File file = new File(additionalAttributesFile);
- if (file.exists()) {
- additionalAttrAvailabe = true;
- }
-
- }
-
- if (!additionalAttrAvailabe) {
- log.info("Start eIDAS ref. impl. Core without additional eIDAS attribute definitions ... ");
- coreAttributeRegistry = AttributeRegistries.fromFiles(eidasAttributesFile, null);
-
- } else {
- // load attribute definitions
- log.info("Start eIDAS ref. impl. Core with additional eIDAS attribute definitions ... ");
- coreAttributeRegistry = AttributeRegistries.fromFiles(eidasAttributesFile, null,
- additionalAttributesFile);
-
- }
-
- } catch (final Throwable e) {
- log.error("Can NOT initialize eIDAS attribute definition.", e);
- throw new RuntimeException("Can NOT initialize eIDAS attribute definition.", e);
-
- }
- }
-
- public AttributeRegistry getCoreAttributeRegistry() {
- return coreAttributeRegistry;
- }
-
- /**
- * Get Map of attributes that are requested by default.
- *
- * @return Map of AttributeIdentifier, isRequired flag
- */
- @NonNull
- public Map getDefaultAttributeSetFromConfiguration() {
- /*
- * TODO: select set for representation if mandates should be used. It's an open
- * task in respect to requested eIDAS attributes and isRequired flag, because
- * there can be a decision problem in case of natural or legal person
- * representation! From an Austrian use-case point of view, an Austrian service
- * provider can support mandates for natural and legal persons at the same time.
- * However, we CAN NOT request attributes for natural AND legal persons on the
- * same time, because it's not possible to represent both simultaneously.
- */
- final Map configAttributes =
- basicConfig.getBasicConfigurationWithPrefix(
- Constants.CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_DEFAULT_ONLYNATURAL);
- return processAttributeInfosFromConfig(configAttributes);
-
- }
-
- /**
- * Get a Map of attributes that are additionally requested for a specific country.
- *
- * @param countryCode Country Code
- * @return Map of AttributeIdentifier, isRequired flag
- */
- @NonNull
- public Map getAttributeSetFromConfiguration(String countryCode) {
-
- /*
- * TODO: select set for representation if mandates should be used. It's an open
- * task in respect to requested eIDAS attributes and isRequired flag, because
- * there can be a decision problem in case of natural or legal person
- * representation! From an Austrian use-case point of view, an Austrian service
- * provider can support mandates for natural and legal persons at the same time.
- * However, we CAN NOT request attributes for natural AND legal persons on the
- * same time, because it's not possible to represent both simultaneously.
- */
- final Map configAttributes =
- basicConfig.getBasicConfigurationWithPrefix(
- MessageFormat.format(
- Constants.CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_CC_SPECIFIC_ONLYNATURAL,
- countryCode.toLowerCase()));
- return processAttributeInfosFromConfig(configAttributes);
-
- }
-
- private Map processAttributeInfosFromConfig(Map configAttributes) {
-
- final Map result = new HashMap<>();
- for (final String el : configAttributes.values()) {
- if (StringUtils.isNotEmpty(el.trim())) {
- final List attrDef = KeyValueUtils.getListOfCsvValues(el.trim());
- boolean isRequired = false;
- if (attrDef.size() == 2) {
- isRequired = Boolean.parseBoolean(attrDef.get(1));
- }
-
- result.put(attrDef.get(0), isRequired);
-
- }
- }
-
- log.trace("Load #" + result.size() + " requested attributes from configuration");
- return result;
-
- }
-
- public void setEidasAttributesFile(String eidasAttributesFile) {
- this.eidasAttributesFile = eidasAttributesFile;
- }
-
- public void setAdditionalAttributesFile(String additionalAttributesFile) {
- this.additionalAttributesFile = additionalAttributesFile;
- }
-
-}
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java
index 6d315b0a..e8b7b2c1 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateIdentityLinkTask.java
@@ -146,6 +146,7 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask {
}
}
+
private void storeGenericInfoToSession(SimpleEidasData eidData) throws EaafStorageException {
AuthProcessDataWrapper authProcessData = MatchingTaskUtils.getAuthProcessDataWrapper(pendingReq);
authProcessData.setForeigner(true);
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
index 774d27d6..535c2958 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
@@ -44,6 +44,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.ICcSpecificEidProcessingService;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
@@ -131,6 +132,7 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {
} else {
sendPost(request, response, tokenBase64, forwardUrl);
+
}
revisionsLogger.logEvent(pendingReq, MsConnectorEventCodes.EIDAS_NODE_CONNECTED, lightAuthnReq.getId());
@@ -257,20 +259,20 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {
private String selectedForwardUrlForEnvironment(String environment) {
log.trace("Starting endpoint selection process for environment: {} ... ", environment);
if (environment.equalsIgnoreCase(MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_PRODUCTION)) {
- return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL);
-
+ return basicConfig.getBasicConfiguration(EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL);
+
} else if (environment.equalsIgnoreCase(MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_QS)) {
- return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ return basicConfig.getBasicConfiguration(EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ "." + MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_QS);
} else if (environment.equalsIgnoreCase(
MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_TESTING)) {
- return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ return basicConfig.getBasicConfiguration(EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ "." + MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_TESTING);
} else if (environment.equalsIgnoreCase(
MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_DEVELOPMENT)) {
- return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ return basicConfig.getBasicConfiguration(EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL
+ "." + MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_DEVELOPMENT);
}
@@ -292,11 +294,11 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {
throws GuiBuildException {
log.debug("Use http-post for eIDAS node forwarding ... ");
final StaticGuiBuilderConfiguration config = new StaticGuiBuilderConfiguration(
- basicConfig, pendingReq, Constants.TEMPLATE_POST_FORWARD_NAME, null, resourceLoader);
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_ENDPOINT, forwardUrl);
+ basicConfig, pendingReq, EidasConstants.TEMPLATE_POST_FORWARD_NAME, null, resourceLoader);
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_ENDPOINT, forwardUrl);
String token = EidasParameterKeys.TOKEN.toString();
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_NAME, token);
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_VALUE, tokenBase64);
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_TOKEN_NAME, token);
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_TOKEN_VALUE, tokenBase64);
guiBuilder.build(request, response, config, "Forward to eIDASNode form");
}
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
index d2bd0128..ac70a2ac 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
@@ -39,8 +39,9 @@ import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasValidationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.validator.EidasResponseValidator;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
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.exceptions.EaafException;
@@ -135,7 +136,7 @@ public class ReceiveAuthnResponseAlternativeTask extends AbstractAuthServletTask
}
private void checkStatusCode(ILightResponse eidasResponse) throws EidasSAuthenticationException {
- if (!eidasResponse.getStatus().getStatusCode().equals(Constants.SUCCESS_URI)) {
+ if (!eidasResponse.getStatus().getStatusCode().equals(EidasConstants.SUCCESS_URI)) {
log.info("Receive eIDAS Response with StatusCode: {} Subcode: {} Msg: {}",
eidasResponse.getStatus().getStatusCode(),
eidasResponse.getStatus().getSubStatusCode(),
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
index 5e4075de..a16da17f 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
@@ -40,8 +40,9 @@ import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasValidationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.validator.EidasResponseValidator;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
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.exceptions.EaafException;
@@ -162,17 +163,20 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask {
return eidasResponse;
}
+
private void checkStatusCode(ILightResponse eidasResponse) throws EidasSAuthenticationException {
- if (!eidasResponse.getStatus().getStatusCode().equals(Constants.SUCCESS_URI)) {
+ if (!eidasResponse.getStatus().getStatusCode().equals(EidasConstants.SUCCESS_URI)) {
log.info("Receive eIDAS Response with StatusCode: {} Subcode: {} Msg: {}",
eidasResponse.getStatus().getStatusCode(),
eidasResponse.getStatus().getSubStatusCode(),
eidasResponse.getStatus().getStatusMessage());
throw new EidasSAuthenticationException("eidas.02", new Object[]{eidasResponse.getStatus()
.getStatusCode(), eidasResponse.getStatus().getStatusMessage()});
+
}
}
+
private void validateMsSpecificResponse(ExecutionContext executionContext, ILightResponse eidasResponse)
throws EidasValidationException {
final String spCountry = basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_COUNTRYCODE, "AT");
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/utils/EidasResponseUtils.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/utils/EidasResponseUtils.java
index 2853d8ab..91a6ce42 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/utils/EidasResponseUtils.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/utils/EidasResponseUtils.java
@@ -38,8 +38,8 @@ import org.joda.time.DateTime;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.e_government.reference.namespace.persondata._20020228.PostalAddressType;
import at.gv.egiz.eaaf.core.impl.data.Triple;
import eu.eidas.auth.commons.attribute.AttributeDefinition;
@@ -84,8 +84,9 @@ public class EidasResponseUtils {
*/
public static Triple parseEidasPersonalIdentifier(String uniqueID) {
if (!validateEidasPersonalIdentifier(uniqueID)) {
- log.error("eIDAS attribute value for {} looks wrong formated. Value: {}",
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER, uniqueID);
+ log.error("eIDAS attribute value for {} looks wrong formated. Value: {}",
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER, uniqueID);
+
return null;
}
@@ -210,11 +211,11 @@ public class EidasResponseUtils {
// TODO: add more mappings
return result;
} else {
- log.warn("eIDAS attr: " + Constants.eIDAS_ATTR_CURRENTADDRESS + " is of WRONG type");
- throw new EidasAttributeException(Constants.eIDAS_ATTR_CURRENTADDRESS);
+ log.warn("eIDAS attr: " + EidasConstants.eIDAS_ATTR_CURRENTADDRESS + " is of WRONG type");
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_CURRENTADDRESS);
}
} else {
- log.debug("NO '" + Constants.eIDAS_ATTR_CURRENTADDRESS + "' attribute. Post-Processing skipped ... ");
+ log.debug("NO '" + EidasConstants.eIDAS_ATTR_CURRENTADDRESS + "' attribute. Post-Processing skipped ... ");
}
return null;
}
@@ -231,11 +232,11 @@ public class EidasResponseUtils {
if (birthNameObj instanceof String) {
return (String) birthNameObj;
} else {
- log.warn("eIDAS attr: " + Constants.eIDAS_ATTR_BIRTHNAME + " is of WRONG type");
- throw new EidasAttributeException(Constants.eIDAS_ATTR_BIRTHNAME);
+ log.warn("eIDAS attr: " + EidasConstants.eIDAS_ATTR_BIRTHNAME + " is of WRONG type");
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_BIRTHNAME);
}
} else {
- log.debug("NO '" + Constants.eIDAS_ATTR_BIRTHNAME + "' attribute. Post-Processing skipped ... ");
+ log.debug("NO '" + EidasConstants.eIDAS_ATTR_BIRTHNAME + "' attribute. Post-Processing skipped ... ");
}
return null;
}
@@ -253,13 +254,13 @@ public class EidasResponseUtils {
return (String) placeOfBirthObj;
} else {
- log.warn("eIDAS attr: " + Constants.eIDAS_ATTR_PLACEOFBIRTH + " is of WRONG type");
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PLACEOFBIRTH);
+ log.warn("eIDAS attr: " + EidasConstants.eIDAS_ATTR_PLACEOFBIRTH + " is of WRONG type");
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH);
}
} else {
- log.debug("NO '" + Constants.eIDAS_ATTR_PLACEOFBIRTH + "' attribute. Post-Processing skipped ... ");
+ log.debug("NO '" + EidasConstants.eIDAS_ATTR_PLACEOFBIRTH + "' attribute. Post-Processing skipped ... ");
}
return null;
}
@@ -273,7 +274,7 @@ public class EidasResponseUtils {
*/
public static DateTime processDateOfBirth(Object dateOfBirthObj) throws EidasAttributeException {
if (!(dateOfBirthObj instanceof DateTime)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_DATEOFBIRTH);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_DATEOFBIRTH);
}
return (DateTime) dateOfBirthObj;
}
@@ -291,11 +292,11 @@ public class EidasResponseUtils {
new SimpleDateFormat("yyyy-MM-dd").parse((String) dateOfBirthObj);
return (String) dateOfBirthObj;
} catch (ParseException e) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_DATEOFBIRTH);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_DATEOFBIRTH);
}
}
if (!(dateOfBirthObj instanceof DateTime)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_DATEOFBIRTH);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_DATEOFBIRTH);
}
return new SimpleDateFormat("yyyy-MM-dd").format(((DateTime) dateOfBirthObj).toDate());
}
@@ -309,7 +310,7 @@ public class EidasResponseUtils {
*/
public static String processGivenName(Object givenNameObj) throws EidasAttributeException {
if (!(givenNameObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_CURRENTGIVENNAME);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME);
}
return (String) givenNameObj;
}
@@ -323,7 +324,7 @@ public class EidasResponseUtils {
*/
public static String processFamilyName(Object familyNameObj) throws EidasAttributeException {
if (!(familyNameObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_CURRENTFAMILYNAME);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME);
}
return (String) familyNameObj;
}
@@ -337,7 +338,7 @@ public class EidasResponseUtils {
*/
public static String processPersonalIdentifier(Object personalIdentifierObj) throws EidasAttributeException {
if (!(personalIdentifierObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
}
return (String) personalIdentifierObj;
}
@@ -352,7 +353,7 @@ public class EidasResponseUtils {
*/
public static String processPseudonym(Object personalIdObj) throws EidasAttributeException {
if (!(personalIdObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
}
final Triple eIdentifier =
EidasResponseUtils.parseEidasPersonalIdentifier((String) personalIdObj);
@@ -371,7 +372,7 @@ public class EidasResponseUtils {
*/
public static String processCountryCode(Object personalIdObj) throws EidasAttributeException {
if (!(personalIdObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER);
}
final Triple eIdentifier =
EidasResponseUtils.parseEidasPersonalIdentifier((String) personalIdObj);
@@ -390,7 +391,7 @@ public class EidasResponseUtils {
*/
public static String processTaxReference(Object taxReferenceObj) throws EidasAttributeException {
if (!(taxReferenceObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_TAXREFERENCE);
+ throw new EidasAttributeException(EidasConstants.eIDAS_ATTR_TAXREFERENCE);
}
return (String) taxReferenceObj;
}
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/validator/EidasResponseValidator.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/validator/EidasResponseValidator.java
index 9d9a0647..d1962654 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/validator/EidasResponseValidator.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/validator/EidasResponseValidator.java
@@ -31,10 +31,10 @@ import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableSet;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasValidationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.impl.data.Triple;
import eu.eidas.auth.commons.attribute.AttributeDefinition;
@@ -97,7 +97,7 @@ public class EidasResponseValidator {
*_____________________________________________________|
*/
final AttributeDefinition> attrDefinition = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final ImmutableSet extends AttributeValue>> attributeValues = eidasResponse.getAttributes()
.getAttributeMap().get(attrDefinition);
final List personalIdObj = EidasResponseUtils.translateStringListAttribute(attrDefinition,
@@ -123,48 +123,48 @@ public class EidasResponseValidator {
if (split == null) {
throw new EidasValidationException("eidas.07",
new Object[] {
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
"Wrong identifier format" });
} else {
// validation according to eIDAS SAML Attribute Profile, Section 2.2.3
if (StringUtils.isEmpty(split.getSecond())) {
- log.warn("eIDAS attribute value for " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER
+ log.warn("eIDAS attribute value for " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER
+ " includes NO destination country. Value:" + natPersId);
throw new EidasValidationException("eidas.07",
new Object[] {
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
"No or empty destination country" });
}
if (!split.getSecond().equalsIgnoreCase(spCountry)) {
- log.warn("eIDAS attribute value for " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER
+ log.warn("eIDAS attribute value for " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER
+ " includes wrong destination country. Value:" + natPersId
+ " SP-Country:" + spCountry);
throw new EidasValidationException("eidas.07",
new Object[] {
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
"Destination country does not match to SP country" });
}
if (StringUtils.isEmpty(split.getFirst())) {
- log.warn("eIDAS attribute value for " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER
+ log.warn("eIDAS attribute value for " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER
+ " includes NO citizen country. Value:" + natPersId);
throw new EidasValidationException("eidas.07",
new Object[] {
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
"No or empty citizen country" });
}
if (!split.getFirst().equalsIgnoreCase(citizenCountryCode)) {
- log.warn("eIDAS attribute value for " + Constants.eIDAS_ATTR_PERSONALIDENTIFIER
+ log.warn("eIDAS attribute value for " + EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER
+ " includes a citizen country that does not match to service-provider country. "
+ " Value:" + natPersId
+ " citiczen Country:" + spCountry);
throw new EidasValidationException("eidas.07",
new Object[] {
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
"Citizen country does not match to eIDAS-node country that generates the response" });
}
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
index 178d768f..ab4228fd 100644
--- a/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
+++ b/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth.beans.xml
@@ -38,13 +38,16 @@
class="at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet" />
+ class="at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry">
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasSignalServletTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasSignalServletTest.java
index 4d4ac47d..3bc06092 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasSignalServletTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/EidasSignalServletTest.java
@@ -29,7 +29,8 @@ import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummySpConfi
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.dummy.DummySpecificCommunicationService;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
@@ -138,7 +139,7 @@ public class EidasSignalServletTest {
iLightResponse.id("_".concat(Random.nextHexRandom16()))
.issuer(RandomStringUtils.randomAlphabetic(10))
.subject(RandomStringUtils.randomAlphabetic(10))
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.inResponseTo("_".concat(Random.nextHexRandom16()))
.subjectNameIdFormat("afaf")
.relayState(relayState);
@@ -177,7 +178,7 @@ public class EidasSignalServletTest {
iLightResponse.id("_".concat(Random.nextHexRandom16()))
.issuer(RandomStringUtils.randomAlphabetic(10))
.subject(RandomStringUtils.randomAlphabetic(10))
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.inResponseTo(inResponseTo)
.subjectNameIdFormat("afaf");
@@ -213,7 +214,7 @@ public class EidasSignalServletTest {
iLightResponse.id("_".concat(Random.nextHexRandom16()))
.issuer(RandomStringUtils.randomAlphabetic(10))
.subject(RandomStringUtils.randomAlphabetic(10))
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.inResponseTo(inResponseTo)
.subjectNameIdFormat("afaf");
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
index cb9df7e5..af1867e7 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientProductionTest.java
@@ -19,12 +19,12 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient.ZmrRegisterResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.LoggingHandler;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.EidasSuchdatenType;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenRequest;
import at.gv.e_government.reference.namespace.persondata.de._20040201.NatuerlichePersonTyp;
@@ -453,9 +453,9 @@ public class ZmrClientProductionTest {
searchNatPerson.setGeburtsdatum(dateOfBirth);
// add addtional eIDAS attributes if available
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_PLACEOFBIRTH, placeOfBirth);
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_BIRTHNAME, birthName);
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER, personalId);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, placeOfBirth);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_BIRTHNAME, birthName);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER, personalId);
return req;
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
index 4e0a1f28..ef9cc9b7 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/clients/ZmrClientTest.java
@@ -38,7 +38,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.github.skjolber.mockito.soap.SoapServiceRule;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.zmr.ZmrSoapClient.ZmrRegisterResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.controller.AdresssucheController.AdresssucheOutput;
@@ -46,6 +45,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.RegisterResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.WorkflowException;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201.RequestType;
import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
@@ -1139,9 +1139,9 @@ public class ZmrClientTest {
searchNatPerson.setGeburtsdatum(dateOfBirth);
// add addtional eIDAS attributes if available
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_PLACEOFBIRTH, placeOfBirth);
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_BIRTHNAME, birthName);
- addIfAvailable(req.getEidasSuchdaten(), cc, Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER, personalId);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_PLACEOFBIRTH, placeOfBirth);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_BIRTHNAME, birthName);
+ addIfAvailable(req.getEidasSuchdaten(), cc, EidasConstants.eIDAS_ATTRURN_PERSONALIDENTIFIER, personalId);
return req;
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/dummy/DummySpecificCommunicationService.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/dummy/DummySpecificCommunicationService.java
deleted file mode 100644
index 78294047..00000000
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/dummy/DummySpecificCommunicationService.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package at.asitplus.eidas.specific.modules.auth.eidas.v2.test.dummy;
-
-import java.util.Collection;
-
-import eu.eidas.auth.commons.attribute.AttributeDefinition;
-import eu.eidas.auth.commons.light.ILightRequest;
-import eu.eidas.auth.commons.light.ILightResponse;
-import eu.eidas.auth.commons.tx.BinaryLightToken;
-import eu.eidas.specificcommunication.BinaryLightTokenHelper;
-import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
-import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
-import lombok.Setter;
-
-public class DummySpecificCommunicationService implements SpecificCommunicationService {
-
- private ILightRequest lightRequest;
- private ILightResponse lightResponse;
-
- @Setter
- private SpecificCommunicationException error;
-
- @Override
- public BinaryLightToken putRequest(ILightRequest lightRequest) throws SpecificCommunicationException {
- this.lightRequest = lightRequest;
- return BinaryLightTokenHelper.createBinaryLightToken("Test", "TestSecret", "SHA-256");
- }
-
- @Override
- public ILightRequest getAndRemoveRequest(String tokenBase64, Collection> registry)
- throws SpecificCommunicationException {
- if (error != null) {
- throw error;
-
- }
- return lightRequest;
- }
-
- @Override
- public BinaryLightToken putResponse(ILightResponse lightResponse) throws SpecificCommunicationException {
- this.lightResponse = lightResponse;
- return BinaryLightTokenHelper.createBinaryLightToken("Test", "TestSecret", "SHA-256");
- }
-
- @Override
- public ILightResponse getAndRemoveResponse(String tokenBase64, Collection> registry)
- throws SpecificCommunicationException {
- return lightResponse;
- }
-
- public ILightRequest getiLightRequest() {
- return lightRequest;
- }
-
- public void setiLightRequest(ILightRequest lightReques) {
- this.lightRequest = lightReques;
- }
-
- public ILightResponse getiLightResponse() {
- return lightResponse;
- }
-
- public void setiLightResponse(ILightResponse lightResponse) {
- this.lightResponse = lightResponse;
- }
-
-}
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
index 682db41e..176e95cb 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/AlternativeSearchTaskWithRegisterTest.java
@@ -67,6 +67,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.RegisterSearchSe
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.AlternativeSearchTask;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.clients.ZmrClientTest;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.MatchingTaskUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201.RequestType;
import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
@@ -913,24 +914,24 @@ public class AlternativeSearchTaskWithRegisterTest {
String dateOfBirth, String taxNumber, String placeOfBirth,
String birthName) throws URISyntaxException {
ImmutableAttributeMap.Builder builder = ImmutableAttributeMap.builder()
- .put(generateStringAttribute(Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
randomAlphabetic(2), randomAlphabetic(2)), identifier)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTFAMILYNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME,
randomAlphabetic(3), randomAlphabetic(3)), familyName)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTGIVENNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME,
randomAlphabetic(4), randomAlphabetic(4)), givenName)
- .put(generateDateTimeAttribute(Constants.eIDAS_ATTR_DATEOFBIRTH,
+ .put(generateDateTimeAttribute(EidasConstants.eIDAS_ATTR_DATEOFBIRTH,
randomAlphabetic(5), randomAlphabetic(5)), dateOfBirth);
if (taxNumber != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_TAXREFERENCE,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_TAXREFERENCE,
randomAlphabetic(6), randomAlphabetic(6)), taxNumber);
}
if (birthName != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_BIRTHNAME,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_BIRTHNAME,
randomAlphabetic(7), randomAlphabetic(7)), birthName);
}
if (placeOfBirth != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_PLACEOFBIRTH,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH,
randomAlphabetic(8), randomAlphabetic(8)), placeOfBirth);
}
final ImmutableAttributeMap attributeMap = builder.build();
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java
index 023c196c..36c0c2af 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java
@@ -57,13 +57,14 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.ICcSpecificEidProcessingService;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.JoseUtils;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.JoseUtils.JwsResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.MatchingTaskUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
@@ -605,18 +606,18 @@ public class CreateIdentityLinkTaskEidNewTest {
@Nonnull
private AuthenticationResponse buildDummyAuthResponse(boolean withAll, boolean withEmpty) throws URISyntaxException {
final AttributeDefinition attributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition attributeDef2 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition attributeDef3 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition attributeDef4 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
final AttributeDefinition attributeDef5 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PLACEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_PLACEOFBIRTH).first();
final AttributeDefinition attributeDef6 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_BIRTHNAME).first();
-
+ EidasConstants.eIDAS_ATTR_BIRTHNAME).first();
+
final Builder attributeMap = ImmutableAttributeMap.builder();
attributeMap.put(attributeDef, "LU/AT/" + RandomStringUtils.randomNumeric(64));
attributeMap.put(attributeDef2, RandomStringUtils.randomAlphabetic(10));
@@ -638,7 +639,7 @@ public class CreateIdentityLinkTaskEidNewTest {
return b.id("_".concat(Random.nextHexRandom16()))
.issuer(RandomStringUtils.randomAlphabetic(10))
.subject(RandomStringUtils.randomAlphabetic(10))
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.inResponseTo("_".concat(Random.nextHexRandom16()))
.subjectNameIdFormat("afaf")
.levelOfAssurance(EaafConstants.EIDAS_LOA_PREFIX + RandomStringUtils.randomAlphabetic(5))
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java
index 5c528532..5db6e95d 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskTest.java
@@ -41,11 +41,12 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.MatchedPersonResult;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.ICcSpecificEidProcessingService;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.MatchingTaskUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
@@ -475,13 +476,13 @@ public class CreateIdentityLinkTaskTest {
@NotNull
private AuthenticationResponse buildDummyAuthResponse() throws URISyntaxException {
final AttributeDefinition attributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition attributeDef2 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition attributeDef3 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition attributeDef4 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
final ImmutableAttributeMap attributeMap = ImmutableAttributeMap.builder()
.put(attributeDef, "LU/AT/" + RandomStringUtils.randomNumeric(64))
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateAuthnRequestTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateAuthnRequestTaskTest.java
index 9521e348..761738aa 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateAuthnRequestTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateAuthnRequestTaskTest.java
@@ -26,7 +26,8 @@ import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigM
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.GenerateAuthnRequestTask;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.dummy.DummySpecificCommunicationService;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService;
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.idp.process.ExecutionContext;
@@ -138,7 +139,7 @@ public class GenerateAuthnRequestTaskTest {
.getErrorId());
Assert.assertEquals("wrong parameter size", 1, ((EaafException) e.getOriginalException())
.getParams().length);
- Assert.assertEquals("wrong errorMsg", Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL, ((EaafException) e
+ Assert.assertEquals("wrong errorMsg", EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL, ((EaafException) e
.getOriginalException()).getParams()[0]);
}
@@ -163,7 +164,7 @@ public class GenerateAuthnRequestTaskTest {
.getErrorId());
Assert.assertEquals("wrong parameter size", 1, ((EaafException) e.getOriginalException())
.getParams().length);
- Assert.assertEquals("wrong errorMsg", Constants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL + "." + stage, ((EaafException) e
+ Assert.assertEquals("wrong errorMsg", EidasConstants.CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL + "." + stage, ((EaafException) e
.getOriginalException()).getParams()[0]);
}
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskTest.java
index 74ac065e..eef31a02 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskTest.java
@@ -83,6 +83,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.RegisterSearchSe
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.RegisterSearchService.RegisterStatusResults;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.InitialSearchTask;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.MatchingTaskUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenRequest;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
@@ -887,24 +888,24 @@ public class InitialSearchTaskTest {
String dateOfBirth, String taxNumber, String placeOfBirth,
String birthName) throws URISyntaxException {
ImmutableAttributeMap.Builder builder = ImmutableAttributeMap.builder()
- .put(generateStringAttribute(Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
randomAlphabetic(2), randomAlphabetic(2)), identifier)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTFAMILYNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME,
randomAlphabetic(3), randomAlphabetic(3)), familyName)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTGIVENNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME,
randomAlphabetic(4), randomAlphabetic(4)), givenName)
- .put(generateDateTimeAttribute(Constants.eIDAS_ATTR_DATEOFBIRTH,
+ .put(generateDateTimeAttribute(EidasConstants.eIDAS_ATTR_DATEOFBIRTH,
randomAlphabetic(5), randomAlphabetic(5)), dateOfBirth);
if (taxNumber != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_TAXREFERENCE,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_TAXREFERENCE,
randomAlphabetic(6), randomAlphabetic(6)), taxNumber);
}
if (birthName != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_BIRTHNAME,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_BIRTHNAME,
randomAlphabetic(7), randomAlphabetic(7)), birthName);
}
if (placeOfBirth != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_PLACEOFBIRTH,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH,
randomAlphabetic(8), randomAlphabetic(8)), placeOfBirth);
}
final ImmutableAttributeMap attributeMap = builder.build();
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
index 6d0e7c31..4b9e9fe2 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/InitialSearchTaskWithRegistersTest.java
@@ -88,6 +88,7 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.InitialSearchTask;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.clients.ErnpRestClientTest;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.clients.ZmrClientTest;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.MatchingTaskUtils;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.bmi.namespace.zmr_su.base._20040201.RequestType;
import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
@@ -607,24 +608,24 @@ public class InitialSearchTaskWithRegistersTest {
String dateOfBirth, String taxNumber, String placeOfBirth,
String birthName) throws URISyntaxException {
ImmutableAttributeMap.Builder builder = ImmutableAttributeMap.builder()
- .put(generateStringAttribute(Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
randomAlphabetic(2), randomAlphabetic(2)), identifier)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTFAMILYNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME,
randomAlphabetic(3), randomAlphabetic(3)), familyName)
- .put(generateStringAttribute(Constants.eIDAS_ATTR_CURRENTGIVENNAME,
+ .put(generateStringAttribute(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME,
randomAlphabetic(4), randomAlphabetic(4)), givenName)
- .put(generateDateTimeAttribute(Constants.eIDAS_ATTR_DATEOFBIRTH,
+ .put(generateDateTimeAttribute(EidasConstants.eIDAS_ATTR_DATEOFBIRTH,
randomAlphabetic(5), randomAlphabetic(5)), dateOfBirth);
if (taxNumber != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_TAXREFERENCE,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_TAXREFERENCE,
randomAlphabetic(6), randomAlphabetic(6)), taxNumber);
}
if (birthName != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_BIRTHNAME,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_BIRTHNAME,
randomAlphabetic(7), randomAlphabetic(7)), birthName);
}
if (placeOfBirth != null) {
- builder.put(generateStringAttribute(Constants.eIDAS_ATTR_PLACEOFBIRTH,
+ builder.put(generateStringAttribute(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH,
randomAlphabetic(8), randomAlphabetic(8)), placeOfBirth);
}
final ImmutableAttributeMap attributeMap = builder.build();
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveAuthnResponseTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveAuthnResponseTaskTest.java
index 842c8bf7..53f83095 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveAuthnResponseTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveAuthnResponseTaskTest.java
@@ -27,8 +27,9 @@ import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummySpConfiguration;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.ReceiveAuthnResponseTask;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
@@ -142,7 +143,7 @@ public class ReceiveAuthnResponseTaskTest {
public void successAndForward() throws URISyntaxException, TaskExecutionException,
PendingReqIdValidationException, EaafStorageException {
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
String alternativReturnEndpoint = "http://ms-connector.alternative/" + RandomStringUtils.randomAlphabetic(10);
@@ -172,7 +173,7 @@ public class ReceiveAuthnResponseTaskTest {
public void success() throws URISyntaxException, TaskExecutionException, PendingReqIdValidationException {
@Nonnull
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, "LU");
@@ -200,7 +201,7 @@ public class ReceiveAuthnResponseTaskTest {
basicConfig.putConfigValue("eidas.ms.auth.eIDAS.eid.testidentity.default", "true");
@Nonnull
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, "LU");
@@ -226,13 +227,13 @@ public class ReceiveAuthnResponseTaskTest {
@Nonnull
private AuthenticationResponse buildDummyAuthResponse(String statusCode) throws URISyntaxException {
final AttributeDefinition attributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition attributeDef2 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition attributeDef3 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition attributeDef4 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
final ImmutableAttributeMap attributeMap = ImmutableAttributeMap.builder()
.put(attributeDef, "LU/AT/" + RandomStringUtils.randomNumeric(64))
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveEidasResponseTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveEidasResponseTaskTest.java
index 4148b138..4112e047 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveEidasResponseTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveEidasResponseTaskTest.java
@@ -27,8 +27,9 @@ import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummySpConfiguration;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.ReceiveAuthnResponseAlternativeTask;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
@@ -141,7 +142,7 @@ public class ReceiveEidasResponseTaskTest {
public void successAndForward() throws URISyntaxException, TaskExecutionException,
PendingReqIdValidationException, EaafStorageException {
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
String alternativReturnEndpoint = "http://ms-connector.alternative/" + RandomStringUtils.randomAlphabetic(10);
@@ -171,7 +172,7 @@ public class ReceiveEidasResponseTaskTest {
public void success() throws URISyntaxException, TaskExecutionException, PendingReqIdValidationException {
@Nonnull
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
//execute test
@@ -198,7 +199,7 @@ public class ReceiveEidasResponseTaskTest {
basicConfig.putConfigValue("eidas.ms.auth.eIDAS.eid.testidentity.default", "true");
@Nonnull
- AuthenticationResponse eidasResponse = buildDummyAuthResponse(Constants.SUCCESS_URI);
+ AuthenticationResponse eidasResponse = buildDummyAuthResponse(EidasConstants.SUCCESS_URI);
httpReq.setAttribute(Constants.DATA_FULL_EIDAS_RESPONSE, eidasResponse);
//execute test
@@ -223,14 +224,14 @@ public class ReceiveEidasResponseTaskTest {
@Nonnull
private AuthenticationResponse buildDummyAuthResponse(String statusCode) throws URISyntaxException {
final AttributeDefinition attributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition attributeDef2 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition attributeDef3 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition attributeDef4 = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
-
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
+
final ImmutableAttributeMap attributeMap = ImmutableAttributeMap.builder()
.put(attributeDef, "LU/AT/" + RandomStringUtils.randomNumeric(64))
.put(attributeDef2, RandomStringUtils.randomAlphabetic(10))
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasAttributePostProcessingTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasAttributePostProcessingTest.java
index 16efd84b..b8cb0642 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasAttributePostProcessingTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasAttributePostProcessingTest.java
@@ -40,12 +40,13 @@ import org.springframework.test.annotation.DirtiesContext.ClassMode;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SimpleEidasData;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.CcSpecificEidProcessingService;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import lombok.SneakyThrows;
+
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/SpringTest-context_tasks_test.xml",
@@ -352,12 +353,12 @@ public class EidasAttributePostProcessingTest {
private Map generateInputData(String id, String familyName, String givenName,
String dateOfBirth, String placeOfBirth, String birthName) {
final Map result = new HashMap<>();
- result.put(Constants.eIDAS_ATTR_PERSONALIDENTIFIER, id);
- result.put(Constants.eIDAS_ATTR_CURRENTGIVENNAME, givenName);
- result.put(Constants.eIDAS_ATTR_CURRENTFAMILYNAME, familyName);
- result.put(Constants.eIDAS_ATTR_DATEOFBIRTH, dateOfBirth);
- result.put(Constants.eIDAS_ATTR_PLACEOFBIRTH, placeOfBirth);
- result.put(Constants.eIDAS_ATTR_BIRTHNAME, birthName);
+ result.put(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER, id);
+ result.put(EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME, givenName);
+ result.put(EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME, familyName);
+ result.put(EidasConstants.eIDAS_ATTR_DATEOFBIRTH, dateOfBirth);
+ result.put(EidasConstants.eIDAS_ATTR_PLACEOFBIRTH, placeOfBirth);
+ result.put(EidasConstants.eIDAS_ATTR_BIRTHNAME, birthName);
return result;
}
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasResponseValidatorTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasResponseValidatorTest.java
index bbba56e2..91a50d28 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasResponseValidatorTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/validation/EidasResponseValidatorTest.java
@@ -21,10 +21,10 @@ import com.google.common.collect.ImmutableSet;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummySpConfiguration;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasValidationException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.validator.EidasResponseValidator;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
@@ -300,7 +300,7 @@ public class EidasResponseValidatorTest {
final AttributeDefinition personIdattributeDef = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final Builder attributeMap = ImmutableAttributeMap.builder();
if (personalId != null) {
@@ -319,7 +319,7 @@ public class EidasResponseValidatorTest {
return b.id("_".concat(Random.nextHexRandom16()))
.issuer(RandomStringUtils.randomAlphabetic(10))
.subject(RandomStringUtils.randomAlphabetic(10))
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.inResponseTo("_".concat(Random.nextHexRandom16()))
.subjectNameIdFormat("afaf")
.levelOfAssurance(loa)
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
index c843c40c..d71a47dc 100644
--- a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
@@ -17,13 +17,13 @@
class="at.asitplus.eidas.specific.modules.auth.eidas.v2.config.EidasConnectorMessageSource"/>
+ class="at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.szr.SzrClient" />
+ class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
@@ -38,13 +38,16 @@
+ class="at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry">
+
+
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
index 0afa0d7d..1b5391d5 100644
--- a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
@@ -25,7 +25,7 @@
class="at.gv.egiz.eaaf.core.impl.gui.builder.SpringMvcGuiFormBuilderImpl" />
+ class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
@@ -36,17 +36,5 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/core_commons_eidas/checks/spotbugs-exclude.xml b/modules/core_commons_eidas/checks/spotbugs-exclude.xml
new file mode 100644
index 00000000..bcb1402f
--- /dev/null
+++ b/modules/core_commons_eidas/checks/spotbugs-exclude.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/modules/core_commons_eidas/pom.xml b/modules/core_commons_eidas/pom.xml
new file mode 100644
index 00000000..2a1e2575
--- /dev/null
+++ b/modules/core_commons_eidas/pom.xml
@@ -0,0 +1,174 @@
+
+ 4.0.0
+
+ at.asitplus.eidas.ms_specific
+ modules
+ 1.3.1-SNAPSHOT
+
+ core_commons_eidas
+ Commons for eIDAS Node communication
+
+
+
+ default
+
+ true
+
+
+
+ egiz-commons
+ https://apps.egiz.gv.at/maven/
+
+ true
+
+
+
+ eIDASNode-local
+ local
+ file:${basedir}/../../repository
+
+
+
+
+
+
+
+ at.gv.egiz.components
+ egiz-spring-api
+
+
+ at.asitplus.eidas.ms_specific
+ core_common_lib
+
+
+ at.gv.egiz.eaaf
+ eaaf-core
+
+
+
+
+ eu.eidas
+ eidas-commons
+
+
+ log4j
+ log4j
+
+
+ log4j-over-slf4j
+ org.slf4j
+
+
+
+
+ eu.eidas
+ eidas-specific-communication-definition
+
+
+ eu.eidas
+ eidas-jcache-ignite-specific-communication
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+ org.springframework
+ spring-test
+ test
+
+
+
+ at.asitplus.eidas.ms_specific
+ core_common_lib
+ test
+ test-jar
+
+
+
+ at.gv.egiz.eaaf
+ eaaf_core_utils
+ test
+ test-jar
+
+
+ at.gv.egiz.eaaf
+ eaaf-core
+ test
+ test-jar
+
+
+
+
+
+
+
+ src/main/resources
+
+
+ target/generated-sources/cxf
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+ com.github.spotbugs
+ spotbugs-maven-plugin
+ ${spotbugs-maven-plugin.version}
+
+ checks/spotbugs-exclude.xml
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+
+
+ post-unit-check
+ test
+
+ check
+ report
+
+
+ true
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+
+ 1
+
+
+
+ org.apache.maven.surefire
+ surefire-junit47
+ ${surefire.version}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
new file mode 100644
index 00000000..ac17c30f
--- /dev/null
+++ b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
@@ -0,0 +1,85 @@
+package at.asitplus.eidas.specific.modules.core.eidas;
+
+/**
+ * Constants to communicate with eIDAS Node.
+ *
+ * @author tlenz
+ *
+ */
+public class EidasConstants {
+
+ // common config ore-fixes
+ public static final String CONIG_PROPS_EIDAS_PREFIX = "auth.eIDAS";
+ public static final String CONIG_PROPS_EIDAS_NODE = EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".node_v2";
+
+ public static final String CONIG_PROPS_EIDAS_CONNECTOR_NODE_FORWARD_URL =
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".forward.endpoint";
+ public static final String CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD =
+ EidasConstants.CONIG_PROPS_EIDAS_NODE + ".forward.method";
+
+ public static final String CONIG_PROPS_EIDAS_NODE_COUNTRYCODE =
+ CONIG_PROPS_EIDAS_NODE + ".countrycode";
+
+
+ // templates for post-binding forwarding
+ public static final String TEMPLATE_POST_FORWARD_NAME = "eidas_node_forward.html";
+ public static final String TEMPLATE_POST_FORWARD_ENDPOINT = "endPoint";
+ public static final String TEMPLATE_POST_FORWARD_TOKEN_NAME = "tokenName";
+ public static final String TEMPLATE_POST_FORWARD_TOKEN_VALUE = "tokenValue";
+
+
+ // common default values
+ public static final String FORWARD_METHOD_POST = "POST";
+ public static final String FORWARD_METHOD_GET = "GET";
+ public static final String DEFAULT_MS_NODE_COUNTRY_CODE = "AT";
+
+
+ // SAML2 Constants
+ public static final String SUCCESS_URI = "urn:oasis:names:tc:SAML:2.0:status:Success";
+ public static final String ERROR_URI = "urn:oasis:names:tc:SAML:2.0:status:Responder";
+
+
+ // eIDAS attribute names
+ public static final String eIDAS_ATTR_PERSONALIDENTIFIER = "PersonIdentifier";
+ public static final String eIDAS_ATTR_DATEOFBIRTH = "DateOfBirth";
+ public static final String eIDAS_ATTR_CURRENTGIVENNAME = "FirstName";
+ public static final String eIDAS_ATTR_CURRENTFAMILYNAME = "FamilyName";
+ public static final String eIDAS_ATTR_PLACEOFBIRTH = "PlaceOfBirth";
+ public static final String eIDAS_ATTR_BIRTHNAME = "BirthName";
+ public static final String eIDAS_ATTR_CURRENTADDRESS = "CurrentAddress";
+
+ //TODO: set parameter if it's defined
+ public static final String eIDAS_ATTR_TAXREFERENCE = "notYetDefined";
+
+ public static final String eIDAS_ATTR_LEGALPERSONIDENTIFIER = "LegalPersonIdentifier";
+ public static final String eIDAS_ATTR_LEGALNAME = "LegalName";
+
+ public static final String eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER = "RepresentativePersonIdentifier";
+ public static final String eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH = "RepresentativeDateOfBirth";
+ public static final String eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME = "RepresentativeFirstName";
+ public static final String eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME = "RepresentativeFamilyName";
+
+ //eIDAS attribute URN
+ public static final String eIDAS_ATTRURN_PREFIX = "http://eidas.europa.eu/attributes/";
+ public static final String eIDAS_ATTRURN_PREFIX_NATURAL = eIDAS_ATTRURN_PREFIX + "naturalperson/";
+
+ public static final String eIDAS_ATTRURN_PERSONALIDENTIFIER =
+ eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_PERSONALIDENTIFIER;
+ public static final String eIDAS_ATTRURN_CURRENTGIVENNAME =
+ eIDAS_ATTRURN_PREFIX_NATURAL + "CurrentGivenName";
+ public static final String eIDAS_ATTRURN_CURRENTFAMILYNAME =
+ eIDAS_ATTRURN_PREFIX_NATURAL + "CurrentFamilyName";
+ public static final String eIDAS_ATTRURN_DATEOFBIRTH =
+ eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_DATEOFBIRTH;
+ public static final String eIDAS_ATTRURN_PLACEOFBIRTH =
+ eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_PLACEOFBIRTH;
+ public static final String eIDAS_ATTRURN_BIRTHNAME =
+ eIDAS_ATTRURN_PREFIX_NATURAL + eIDAS_ATTR_BIRTHNAME;
+
+
+
+ private EidasConstants() {
+ // hide Constructor for class with static content only.
+ }
+
+}
diff --git a/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/service/EidasAttributeRegistry.java b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/service/EidasAttributeRegistry.java
new file mode 100644
index 00000000..15c8b3c0
--- /dev/null
+++ b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/service/EidasAttributeRegistry.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2018 A-SIT Plus GmbH
+ * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
+ * A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "License");
+ * You may not use this work except in compliance with the License.
+ * You may obtain a copy of the License at:
+ * https://joinup.ec.europa.eu/news/understanding-eupl-v12
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+*/
+
+package at.asitplus.eidas.specific.modules.core.eidas.service;
+
+import java.io.File;
+
+import javax.annotation.PostConstruct;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
+import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
+import eu.eidas.auth.commons.attribute.AttributeRegistries;
+import eu.eidas.auth.commons.attribute.AttributeRegistry;
+
+@Service("attributeRegistry")
+public class EidasAttributeRegistry {
+ private static final Logger log = LoggerFactory.getLogger(EidasAttributeRegistry.class);
+ @Autowired
+ protected IConfigurationWithSP basicConfig;
+
+ private AttributeRegistry coreAttributeRegistry;
+
+ private String eidasAttributesFile;
+ private String additionalAttributesFile;
+
+ @PostConstruct
+ private void initialize() throws RuntimeException {
+ try {
+ if (eidasAttributesFile.isEmpty()) {
+ log.error("Basic eIDAS addribute definition NOT defined");
+ throw new EaafConfigurationException("config.30",
+ new Object[] { "eidas-attributes.xml" });
+
+ }
+
+ boolean additionalAttrAvailabe = false;
+ if (!additionalAttributesFile.isEmpty()) {
+ final File file = new File(additionalAttributesFile);
+ if (file.exists()) {
+ additionalAttrAvailabe = true;
+ }
+
+ }
+
+ if (!additionalAttrAvailabe) {
+ log.info("Start eIDAS ref. impl. Core without additional eIDAS attribute definitions ... ");
+ coreAttributeRegistry = AttributeRegistries.fromFiles(eidasAttributesFile, null);
+
+ } else {
+ // load attribute definitions
+ log.info("Start eIDAS ref. impl. Core with additional eIDAS attribute definitions ... ");
+ coreAttributeRegistry = AttributeRegistries.fromFiles(eidasAttributesFile, null,
+ additionalAttributesFile);
+
+ }
+
+ } catch (final Throwable e) {
+ log.error("Can NOT initialize eIDAS attribute definition.", e);
+ throw new RuntimeException("Can NOT initialize eIDAS attribute definition.", e);
+
+ }
+ }
+
+ public AttributeRegistry getCoreAttributeRegistry() {
+ return coreAttributeRegistry;
+ }
+
+
+ public void setEidasAttributesFile(String eidasAttributesFile) {
+ this.eidasAttributesFile = eidasAttributesFile;
+ }
+
+ public void setAdditionalAttributesFile(String additionalAttributesFile) {
+ this.additionalAttributesFile = additionalAttributesFile;
+ }
+
+}
diff --git a/modules/core_commons_eidas/src/test/java/at/asitplus/eidas/specific/modules/core/eidas/test/dummy/DummySpecificCommunicationService.java b/modules/core_commons_eidas/src/test/java/at/asitplus/eidas/specific/modules/core/eidas/test/dummy/DummySpecificCommunicationService.java
new file mode 100644
index 00000000..97ccade4
--- /dev/null
+++ b/modules/core_commons_eidas/src/test/java/at/asitplus/eidas/specific/modules/core/eidas/test/dummy/DummySpecificCommunicationService.java
@@ -0,0 +1,66 @@
+package at.asitplus.eidas.specific.modules.core.eidas.test.dummy;
+
+import java.util.Collection;
+
+import eu.eidas.auth.commons.attribute.AttributeDefinition;
+import eu.eidas.auth.commons.light.ILightRequest;
+import eu.eidas.auth.commons.light.ILightResponse;
+import eu.eidas.auth.commons.tx.BinaryLightToken;
+import eu.eidas.specificcommunication.BinaryLightTokenHelper;
+import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
+import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
+import lombok.Setter;
+
+public class DummySpecificCommunicationService implements SpecificCommunicationService {
+
+ private ILightRequest lightRequest;
+ private ILightResponse lightResponse;
+
+ @Setter
+ private SpecificCommunicationException error;
+
+ @Override
+ public BinaryLightToken putRequest(ILightRequest lightRequest) throws SpecificCommunicationException {
+ this.lightRequest = lightRequest;
+ return BinaryLightTokenHelper.createBinaryLightToken("Test", "TestSecret", "SHA-256");
+ }
+
+ @Override
+ public ILightRequest getAndRemoveRequest(String tokenBase64, Collection> registry)
+ throws SpecificCommunicationException {
+ if (error != null) {
+ throw error;
+
+ }
+ return lightRequest;
+ }
+
+ @Override
+ public BinaryLightToken putResponse(ILightResponse lightResponse) throws SpecificCommunicationException {
+ this.lightResponse = lightResponse;
+ return BinaryLightTokenHelper.createBinaryLightToken("Test", "TestSecret", "SHA-256");
+ }
+
+ @Override
+ public ILightResponse getAndRemoveResponse(String tokenBase64, Collection> registry)
+ throws SpecificCommunicationException {
+ return lightResponse;
+ }
+
+ public ILightRequest getiLightRequest() {
+ return lightRequest;
+ }
+
+ public void setiLightRequest(ILightRequest lightReques) {
+ this.lightRequest = lightReques;
+ }
+
+ public ILightResponse getiLightResponse() {
+ return lightResponse;
+ }
+
+ public void setiLightResponse(ILightResponse lightResponse) {
+ this.lightResponse = lightResponse;
+ }
+
+}
diff --git a/modules/eidas_proxy-sevice/pom.xml b/modules/eidas_proxy-sevice/pom.xml
index 39763edf..e45d6ee0 100644
--- a/modules/eidas_proxy-sevice/pom.xml
+++ b/modules/eidas_proxy-sevice/pom.xml
@@ -25,12 +25,12 @@
at.asitplus.eidas.ms_specific
- core_common_lib
+ core_common_lib
- at.asitplus.eidas.ms_specific.modules
- authmodule-eIDAS-v2
-
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+
at.gv.egiz.eaaf
eaaf-core
@@ -101,11 +101,17 @@
test-jar
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+ test
+ test-jar
+
+
at.gv.egiz.eaaf
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceConstants.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceConstants.java
index f6a88aa3..fd6b45bb 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceConstants.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceConstants.java
@@ -1,6 +1,6 @@
package at.asitplus.eidas.specific.modules.msproxyservice;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
/**
@@ -15,22 +15,22 @@ public class MsProxyServiceConstants {
public static final String TEMPLATE_SP_UNIQUE_ID = "eidasProxyAuth_from_{0}_type_{1}";
// configuration constants
- public static final String CONIG_PROPS_EIDAS_PROXY_NODE_ENTITYID = Constants.CONIG_PROPS_EIDAS_NODE
+ public static final String CONIG_PROPS_EIDAS_PROXY_NODE_ENTITYID = EidasConstants.CONIG_PROPS_EIDAS_NODE
+ ".proxy.entityId";
- public static final String CONIG_PROPS_EIDAS_PROXY_NODE_FORWARD_URL = Constants.CONIG_PROPS_EIDAS_NODE
+ public static final String CONIG_PROPS_EIDAS_PROXY_NODE_FORWARD_URL = EidasConstants.CONIG_PROPS_EIDAS_NODE
+ ".proxy.forward.endpoint";
// mandate configuration
public static final String CONIG_PROPS_EIDAS_PROXY_MANDATES_ENABLED =
- Constants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.enabled";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.enabled";
public static final String CONIG_PROPS_EIDAS_PROXY_MANDATES_PROFILE_DEFAULT_NATURAL =
- Constants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.profiles.natural.default";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.profiles.natural.default";
public static final String CONIG_PROPS_EIDAS_PROXY_MANDATES_PROFILE_DEFAULT_LEGAL =
- Constants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.profiles.legal.default";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.mandates.profiles.legal.default";
public static final String CONIG_PROPS_EIDAS_PROXY_WORKAROUND_MANDATES_LEGAL_PERSON =
- Constants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.workaround.mandates.legalperson";
+ EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".proxy.workaround.mandates.legalperson";
// specific eIDAS-Connector configuration
public static final String CONIG_PROPS_CONNECTOR_PREFIX = "connector";
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
index e24c753e..cd404cee 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
@@ -25,8 +25,8 @@ import com.google.common.collect.ImmutableSortedSet;
import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.msproxyservice.MsProxyServiceConstants;
import at.asitplus.eidas.specific.modules.msproxyservice.exception.EidasProxyServiceException;
import at.asitplus.eidas.specific.modules.msproxyservice.utils.EidasProxyServiceUtils;
@@ -308,8 +308,8 @@ public class EidasProxyServiceController extends AbstractController implements I
final ServiceProviderConfiguration spConfig = new ServiceProviderConfiguration(connectorConfigMap, authConfig);
// build bPK target from Country-Code
- final String ccCountry = authConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_COUNTRYCODE,
- Constants.DEFAULT_MS_NODE_COUNTRY_CODE);
+ final String ccCountry = authConfig.getBasicConfiguration(EidasConstants.CONIG_PROPS_EIDAS_NODE_COUNTRYCODE,
+ EidasConstants.DEFAULT_MS_NODE_COUNTRY_CODE);
spConfig.setBpkTargetIdentifier(
EaafConstants.URN_PREFIX_EIDAS + ccCountry + "+" + spCountry);
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
index 15524005..92165412 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
@@ -17,8 +17,8 @@ import org.springframework.web.util.UriComponentsBuilder;
import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.core.gui.StaticGuiBuilderConfiguration;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.msproxyservice.MsProxyServiceConstants;
import at.asitplus.eidas.specific.modules.msproxyservice.exception.EidasProxyServiceException;
import at.asitplus.eidas.specific.modules.msproxyservice.utils.EidasProxyServiceUtils;
@@ -85,7 +85,7 @@ public class ProxyServiceAuthenticationAction implements IAction {
lightRespBuilder.relayState(eidasReq.getRelayState());
lightRespBuilder.status(ResponseStatus.builder()
- .statusCode(Constants.SUCCESS_URI)
+ .statusCode(EidasConstants.SUCCESS_URI)
.build());
//TODO: check if we can use transient subjectNameIds
@@ -168,8 +168,8 @@ public class ProxyServiceAuthenticationAction implements IAction {
log.debug("ForwardURL: " + forwardUrl + " selected to forward eIDAS request");
if (basicConfig.getBasicConfiguration(
- Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD,
- Constants.FORWARD_METHOD_GET).equals(Constants.FORWARD_METHOD_GET)) {
+ EidasConstants.CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD,
+ EidasConstants.FORWARD_METHOD_GET).equals(EidasConstants.FORWARD_METHOD_GET)) {
log.debug("Use http-redirect for eIDAS node forwarding ... ");
// send redirect
@@ -182,14 +182,14 @@ public class ProxyServiceAuthenticationAction implements IAction {
final StaticGuiBuilderConfiguration config = new StaticGuiBuilderConfiguration(
basicConfig,
pendingReq,
- Constants.TEMPLATE_POST_FORWARD_NAME,
+ EidasConstants.TEMPLATE_POST_FORWARD_NAME,
null,
resourceLoader);
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_ENDPOINT, forwardUrl);
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_NAME,
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_ENDPOINT, forwardUrl);
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_TOKEN_NAME,
EidasParameterKeys.TOKEN.toString());
- config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_VALUE,
+ config.putCustomParameter(null, EidasConstants.TEMPLATE_POST_FORWARD_TOKEN_VALUE,
tokenBase64);
guiBuilder.build(httpReq, httpResp, config, "Forward to eIDASNode form");
@@ -233,13 +233,13 @@ public class ProxyServiceAuthenticationAction implements IAction {
if (StringUtils.isNotEmpty(natMandatorId)) {
log.debug("Injecting natural mandator informations ... ");
final AttributeDefinition> attrDefPersonalId = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition> attrDefFamilyName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition> attrDefGivenName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition> attrDefDateOfBirth = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
attributeMap.put(attrDefPersonalId, natMandatorId);
attributeMap.put(attrDefFamilyName, eidAuthData.getGenericData(
@@ -252,9 +252,9 @@ public class ProxyServiceAuthenticationAction implements IAction {
} else {
log.debug("Injecting legal mandator informations ... ");
final AttributeDefinition> commonName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALNAME).first();
+ EidasConstants.eIDAS_ATTR_LEGALNAME).first();
final AttributeDefinition> legalPersonId = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first();
attributeMap.put(commonName, eidAuthData.getGenericData(
PvpAttributeDefinitions.MANDATE_LEG_PER_FULL_NAME_NAME, String.class));
@@ -267,13 +267,13 @@ public class ProxyServiceAuthenticationAction implements IAction {
private void injectRepesentativeInformation(
ImmutableAttributeMap.Builder attributeMap, IEidAuthData eidAuthData) {
final AttributeDefinition> attrDefPersonalId = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER).first();
final AttributeDefinition> attrDefFamilyName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME).first();
final AttributeDefinition> attrDefGivenName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME).first();
final AttributeDefinition> attrDefDateOfBirth = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH).first();
attributeMap.put(attrDefPersonalId,
eidAuthData.getGenericData(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER, String.class));
@@ -319,13 +319,13 @@ public class ProxyServiceAuthenticationAction implements IAction {
private ImmutableAttributeMap buildAttributesWithoutMandate(String personalIdentifier, String familyName,
String givenName, String dateOfBirth) {
final AttributeDefinition> attrDefPersonalId = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first();
final AttributeDefinition> attrDefFamilyName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first();
final AttributeDefinition> attrDefGivenName = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_CURRENTGIVENNAME).first();
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first();
final AttributeDefinition> attrDefDateOfBirth = attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_DATEOFBIRTH).first();
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first();
final ImmutableAttributeMap.Builder attributeMap =
ImmutableAttributeMap.builder()
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/utils/EidasProxyServiceUtils.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/utils/EidasProxyServiceUtils.java
index 4cd7ba6c..b8a4c598 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/utils/EidasProxyServiceUtils.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/utils/EidasProxyServiceUtils.java
@@ -1,6 +1,6 @@
package at.asitplus.eidas.specific.modules.msproxyservice.utils;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import eu.eidas.auth.commons.light.ILightRequest;
/**
@@ -19,7 +19,7 @@ public class EidasProxyServiceUtils {
*/
public static boolean isLegalPersonRequested(ILightRequest eidasRequest) {
return eidasRequest.getRequestedAttributes().entrySet().stream()
- .filter(el -> el.getKey().getFriendlyName().equals(Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER))
+ .filter(el -> el.getKey().getFriendlyName().equals(EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER))
.findFirst()
.isPresent();
@@ -33,7 +33,7 @@ public class EidasProxyServiceUtils {
*/
public static boolean isNaturalPersonRequested(ILightRequest eidasRequest) {
return eidasRequest.getRequestedAttributes().entrySet().stream()
- .filter(el -> el.getKey().getFriendlyName().equals(Constants.eIDAS_ATTR_PERSONALIDENTIFIER))
+ .filter(el -> el.getKey().getFriendlyName().equals(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER))
.findFirst()
.isPresent();
diff --git a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/EidasProxyServiceControllerTest.java b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/EidasProxyServiceControllerTest.java
index 55958d9e..2b652f79 100644
--- a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/EidasProxyServiceControllerTest.java
+++ b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/EidasProxyServiceControllerTest.java
@@ -22,7 +22,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.opensaml.saml.saml2.core.NameIDType;
import org.opensaml.saml.saml2.core.StatusCode;
-import org.powermock.core.classloader.annotations.PrepareForTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.mock.web.MockHttpServletRequest;
@@ -37,10 +36,9 @@ import com.google.common.collect.ImmutableSortedSet;
import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.test.dummy.DummySpecificCommunicationService;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService;
import at.asitplus.eidas.specific.modules.msproxyservice.MsProxyServiceConstants;
import at.asitplus.eidas.specific.modules.msproxyservice.exception.EidasProxyServiceException;
import at.asitplus.eidas.specific.modules.msproxyservice.protocol.EidasProxyServiceController;
@@ -59,7 +57,6 @@ import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
@RunWith(SpringJUnit4ClassRunner.class)
-@PrepareForTest(CreateIdentityLinkTask.class)
@ContextConfiguration(locations = {
"/spring/SpringTest-context_basic_test.xml",
"/spring/SpringTest-context_basic_mapConfig.xml",
@@ -222,9 +219,9 @@ public class EidasProxyServiceControllerTest {
.levelOfAssurance(EaafConstants.EIDAS_LOA_HIGH)
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first())
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first())
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
.build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -250,7 +247,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -280,7 +277,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -345,7 +342,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -389,7 +386,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -433,7 +430,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -466,7 +463,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -502,7 +499,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -556,7 +553,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
@@ -613,7 +610,7 @@ public class EidasProxyServiceControllerTest {
.spType("public")
.requestedAttributes(ImmutableAttributeMap.builder()
.put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
- Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first()).build());
proxyService.setiLightRequest(authnReqBuilder.build());
diff --git a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/ProxyServiceAuthenticationActionTest.java b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/ProxyServiceAuthenticationActionTest.java
index 21d2f3b7..97b5bc03 100644
--- a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/ProxyServiceAuthenticationActionTest.java
+++ b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/ProxyServiceAuthenticationActionTest.java
@@ -24,7 +24,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opensaml.saml.saml2.core.NameIDType;
-import org.powermock.core.classloader.annotations.PrepareForTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.mock.web.MockHttpServletRequest;
@@ -39,9 +38,8 @@ import com.google.common.collect.ImmutableSortedSet;
import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummySpConfiguration;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.asitplus.eidas.specific.modules.msproxyservice.protocol.ProxyServiceAuthenticationAction;
import at.asitplus.eidas.specific.modules.msproxyservice.protocol.ProxyServicePendingRequest;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
@@ -64,7 +62,6 @@ import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
@RunWith(SpringJUnit4ClassRunner.class)
-@PrepareForTest(CreateIdentityLinkTask.class)
@ContextConfiguration(locations = {
"/spring/SpringTest-context_basic_test.xml",
"/spring/SpringTest-context_basic_mapConfig.xml",
@@ -163,11 +160,11 @@ public class ProxyServiceAuthenticationActionTest {
ImmutableAttributeMap respAttr = validateBasicEidasResponse(authData);
assertEquals("wrong attr. size", 4, respAttr.size());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTFAMILYNAME, authData.getFamilyName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTGIVENNAME, authData.getGivenName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_DATEOFBIRTH,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME, authData.getFamilyName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME, authData.getGivenName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_DATEOFBIRTH,
authData.getDateOfBirth());
}
@@ -199,19 +196,19 @@ public class ProxyServiceAuthenticationActionTest {
ImmutableAttributeMap respAttr = validateBasicEidasResponse(authData);
assertEquals("wrong attr. size", 8, respAttr.size());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME, authData.getFamilyName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME, authData.getGivenName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH, authData.getDateOfBirth());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME, authData.getFamilyName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME, authData.getGivenName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH, authData.getDateOfBirth());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_NAT_MANDATOR_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTFAMILYNAME,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME,
(String) attr.get(PvpAttributeDefinitions.MANDATE_NAT_PER_FAMILY_NAME_NAME));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTGIVENNAME,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME,
(String) attr.get(PvpAttributeDefinitions.MANDATE_NAT_PER_GIVEN_NAME_NAME));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_DATEOFBIRTH,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_DATEOFBIRTH,
(String) attr.get(PvpAttributeDefinitions.MANDATE_NAT_PER_BIRTHDATE_NAME));
}
@@ -237,25 +234,25 @@ public class ProxyServiceAuthenticationActionTest {
ImmutableAttributeMap respAttr = validateBasicEidasResponse(authData);
assertEquals("wrong attr. size", 6, respAttr.size());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_PERSONALIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME, authData.getFamilyName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME, authData.getGivenName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH, authData.getDateOfBirth());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTFAMILYNAME, authData.getFamilyName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_CURRENTGIVENNAME, authData.getGivenName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_REPRESENTATIVE_DATEOFBIRTH, authData.getDateOfBirth());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_JUR_MANDATOR_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_LEGALNAME,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_LEGALNAME,
(String) attr.get(PvpAttributeDefinitions.MANDATE_LEG_PER_FULL_NAME_NAME));
assertNull("find nat. person subject: personalId",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_PERSONALIDENTIFIER));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER));
assertNull("find nat. person subject: familyName",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTFAMILYNAME));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME));
assertNull("find nat. person subject: givenName",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTGIVENNAME));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME));
assertNull("find nat. person subject: dateOfBirth",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_DATEOFBIRTH));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_DATEOFBIRTH));
}
@@ -267,7 +264,7 @@ public class ProxyServiceAuthenticationActionTest {
//request natural person subject only
LightRequest.Builder eidasRequestBuilder = generateBasicLightRequest();
eidasRequestBuilder.requestedAttributes(ImmutableAttributeMap.builder().put(
- attrRegistry.getCoreAttributeRegistry().getByFriendlyName(Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
+ attrRegistry.getCoreAttributeRegistry().getByFriendlyName(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first()).build());
pendingReq.setEidasRequest(eidasRequestBuilder.build());
@@ -307,8 +304,8 @@ public class ProxyServiceAuthenticationActionTest {
//request natural person subject only
LightRequest.Builder eidasRequestBuilder = generateBasicLightRequest();
eidasRequestBuilder.requestedAttributes(ImmutableAttributeMap.builder()
- .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(Constants.eIDAS_ATTR_PERSONALIDENTIFIER).first())
- .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
.build());
pendingReq.setEidasRequest(eidasRequestBuilder.build());
@@ -331,11 +328,11 @@ public class ProxyServiceAuthenticationActionTest {
ImmutableAttributeMap respAttr = validateBasicEidasResponse(authData);
assertEquals("wrong attr. size", 10, respAttr.size());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_PERSONALIDENTIFIER,
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER,
(String) attr.get(MsEidasNodeConstants.ATTR_EIDAS_PERSONAL_IDENTIFIER));
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTFAMILYNAME, authData.getFamilyName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTGIVENNAME, authData.getGivenName());
- checkAttrValue(respAttr, Constants.eIDAS_ATTR_DATEOFBIRTH, authData.getDateOfBirth());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME, authData.getFamilyName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME, authData.getGivenName());
+ checkAttrValue(respAttr, EidasConstants.eIDAS_ATTR_DATEOFBIRTH, authData.getDateOfBirth());
}
@@ -347,7 +344,8 @@ public class ProxyServiceAuthenticationActionTest {
//request natural person subject only
LightRequest.Builder eidasRequestBuilder = generateBasicLightRequest();
eidasRequestBuilder.requestedAttributes(ImmutableAttributeMap.builder()
- .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(Constants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
+ EidasConstants.eIDAS_ATTR_LEGALPERSONIDENTIFIER).first())
.build());
pendingReq.setEidasRequest(eidasRequestBuilder.build());
@@ -371,13 +369,13 @@ public class ProxyServiceAuthenticationActionTest {
ImmutableAttributeMap respAttr = validateBasicEidasResponse(authData);
assertEquals("wrong attr. size", 6, respAttr.size());
assertNull("find nat. person subject: personalId",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_PERSONALIDENTIFIER));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER));
assertNull("find nat. person subject: familyName",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTFAMILYNAME));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME));
assertNull("find nat. person subject: givenName",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_CURRENTGIVENNAME));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME));
assertNull("find nat. person subject: dateOfBirth",
- getAttrValue(respAttr, Constants.eIDAS_ATTR_DATEOFBIRTH));
+ getAttrValue(respAttr, EidasConstants.eIDAS_ATTR_DATEOFBIRTH));
}
diff --git a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
index 9870d22a..08b25f0f 100644
--- a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
+++ b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
@@ -14,7 +14,7 @@
+ class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
@@ -32,7 +32,7 @@
+ class="at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry">
authmodule-eIDAS-v2
authmodule_id-austria
eidas_proxy-sevice
+ core_commons_eidas
diff --git a/ms_specific_proxyservice/checks/spotbugs-exclude.xml b/ms_specific_proxyservice/checks/spotbugs-exclude.xml
index c44b435f..f9df26fb 100644
--- a/ms_specific_proxyservice/checks/spotbugs-exclude.xml
+++ b/ms_specific_proxyservice/checks/spotbugs-exclude.xml
@@ -1,4 +1,8 @@
-
+
+
+
+
+
diff --git a/ms_specific_proxyservice/pom.xml b/ms_specific_proxyservice/pom.xml
index 64704c93..16f25bf2 100644
--- a/ms_specific_proxyservice/pom.xml
+++ b/ms_specific_proxyservice/pom.xml
@@ -3,9 +3,11 @@
at.asitplus.eidas
ms_specific
- 1.2.4-SNAPSHOT
-
+ 1.3.1-SNAPSHOT
+
+ at.asitplus.eidas.ms_specific
ms_specific_proxyservice
+ war
MS-specific Proxy-Service
Austria specific eIDAS ms-specific Proxy-Service implementation
diff --git a/ms_specific_proxyservice/src/main/webapp/WEB-INF/web.xml b/ms_specific_proxyservice/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 00000000..dfac815e
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,22 @@
+
+
+
+ AT eIDAS Proxy-Service
+ MS specific eIDAS Proxy-Service to national eID infrastructure
+
+
+ index.html
+
+
+
+ 5
+
+
+
+ 500
+ /errorpage.jsp
+
+
+
diff --git a/ms_specific_proxyservice/src/main/webapp/autocommit.js b/ms_specific_proxyservice/src/main/webapp/autocommit.js
new file mode 100644
index 00000000..d21a5651
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/webapp/autocommit.js
@@ -0,0 +1,5 @@
+function autoCommmit() {
+ document.forms[0].submit();
+}
+
+document.addEventListener('DOMContentLoaded', autoCommmit);
\ No newline at end of file
diff --git a/ms_specific_proxyservice/src/main/webapp/css/css_error.css b/ms_specific_proxyservice/src/main/webapp/css/css_error.css
new file mode 100644
index 00000000..d772df43
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/webapp/css/css_error.css
@@ -0,0 +1,26 @@
+@charset "utf-8";
+ body {
+ padding-left: 5%;
+ background-color: #F9F9F9;
+ }
+ #page {
+ padding-top: 2%;
+ padding-right: 10%;
+ padding-left: 5%;
+ }
+
+ .OA_header {
+ font-size: 2.1em;
+ padding-top:1%;
+ margin-bottom: 1%;
+ margin-top: 1%;
+
+ }
+
+ #alert_area {
+ float:left;
+ width: 100%;
+ }
+
+
+
diff --git a/ms_specific_proxyservice/src/main/webapp/img/ajax-loader.gif b/ms_specific_proxyservice/src/main/webapp/img/ajax-loader.gif
new file mode 100644
index 00000000..f2a1bc0c
Binary files /dev/null and b/ms_specific_proxyservice/src/main/webapp/img/ajax-loader.gif differ
diff --git a/ms_specific_proxyservice/src/main/webapp/img/globus_eu.png b/ms_specific_proxyservice/src/main/webapp/img/globus_eu.png
new file mode 100644
index 00000000..7ac30cec
Binary files /dev/null and b/ms_specific_proxyservice/src/main/webapp/img/globus_eu.png differ
diff --git a/ms_specific_proxyservice/src/main/webapp/index.html b/ms_specific_proxyservice/src/main/webapp/index.html
new file mode 100644
index 00000000..55370ebe
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/webapp/index.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Austrian specific eIDAS-Connector
+
+
+
+
+
+
+
+
+
Your are on the Austrian specific eIDAS-Connector.
+
+ This service acts as a national gateway to eIDAS proxy-services and can by only used in combination with Austrian online applications.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9f3524d8..28e5ef1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,9 +136,9 @@
connector
- modules
- build_reporting
ms_specific_proxyservice
+ modules
+ build_reporting
@@ -221,7 +221,12 @@
core_common_webapp
${egiz.eidas.version}
-
+
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+ ${egiz.eidas.version}
+
+
eu.eidas
@@ -566,7 +571,14 @@
${egiz.eidas.version}
test
test-jar
-
+
+
+ at.asitplus.eidas.ms_specific
+ core_commons_eidas
+ ${egiz.eidas.version}
+ test
+ test-jar
+
at.asitplus.eidas.ms_specific.modules
authmodule-eIDAS-v2
--
cgit v1.2.3
From 7f0a925a72dc9841280e66fcba1515af62b9efdf Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 3 Jun 2022 15:24:01 +0200
Subject: test(core): add smoke test with full eIDAS OutGoing login and
error-handling
---
.../src/main/resources/application.properties | 3 -
.../eidas_v2_auth_ref_impl_config.beans.xml | 39 --
.../eidas_v2_auth_ref_impl_config.beans.xml | 39 ++
.../MsProxyServiceSpringResourceProvider.java | 5 +-
.../resources/spring/eidas_proxy-service.beans.xml | 7 +
.../spring/SpringTest-context_basic_test.xml | 8 -
.../proxy/pvp/PvpEndPointConfiguration.java | 154 +++++++
.../src/main/resources/application.properties | 1 +
.../main/resources/specific_eIDAS_proxy.beans.xml | 4 +-
.../proxy/test/FullStartUpAndProcessTest.java | 480 +++++++++++++++++++++
.../config/eIDAS/additional-attributes.xml | 39 ++
.../resources/config/eIDAS/eidas-attributes.xml | 376 ++++++++++++++++
.../config/eIDAS/igniteSpecificCommunication.xml | 109 +++++
.../specificCommunicationDefinitionConnector.xml | 37 ++
...specificCommunicationDefinitionProxyservice.xml | 37 ++
.../config/junit_config_1_springboot.properties | 116 +++++
.../src/test/resources/config/keys/Metadata.pem | 18 +
.../src/test/resources/config/keys/junit.jks | Bin 0 -> 3980 bytes
.../src/test/resources/config/keys/junit_test.jks | Bin 0 -> 8410 bytes
.../src/test/resources/config/keys/teststore.jks | Bin 0 -> 2028 bytes
.../src/test/resources/config/logback_config.xml | 102 +++++
.../config/properties/messages.properties | 0
.../config/properties/messages_de.properties | 0
.../config/properties/messages_en.properties | 0
.../config/templates/eidas_node_forward.html | 36 ++
.../src/test/resources/config/templates/error.html | 53 +++
.../resources/config/templates/error_message.html | 37 ++
.../config/templates/pvp2_post_binding.html | 36 ++
.../test/resources/config/webcontent/autocommit.js | 5 +
.../resources/config/webcontent/css/css_error.css | 26 ++
.../config/webcontent/img/ajax-loader.gif | Bin 0 -> 673 bytes
.../src/test/resources/data/Response_with_EID.xml | 49 +++
.../data/idp_metadata_classpath_entity.xml | 146 +++++++
33 files changed, 1910 insertions(+), 52 deletions(-)
delete mode 100644 modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
create mode 100644 modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
create mode 100644 ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/pvp/PvpEndPointConfiguration.java
create mode 100644 ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
create mode 100644 ms_specific_proxyservice/src/test/resources/config/eIDAS/additional-attributes.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/eIDAS/eidas-attributes.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/eIDAS/igniteSpecificCommunication.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionConnector.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionProxyservice.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/junit_config_1_springboot.properties
create mode 100644 ms_specific_proxyservice/src/test/resources/config/keys/Metadata.pem
create mode 100644 ms_specific_proxyservice/src/test/resources/config/keys/junit.jks
create mode 100644 ms_specific_proxyservice/src/test/resources/config/keys/junit_test.jks
create mode 100644 ms_specific_proxyservice/src/test/resources/config/keys/teststore.jks
create mode 100644 ms_specific_proxyservice/src/test/resources/config/logback_config.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/config/properties/messages.properties
create mode 100644 ms_specific_proxyservice/src/test/resources/config/properties/messages_de.properties
create mode 100644 ms_specific_proxyservice/src/test/resources/config/properties/messages_en.properties
create mode 100644 ms_specific_proxyservice/src/test/resources/config/templates/eidas_node_forward.html
create mode 100644 ms_specific_proxyservice/src/test/resources/config/templates/error.html
create mode 100644 ms_specific_proxyservice/src/test/resources/config/templates/error_message.html
create mode 100644 ms_specific_proxyservice/src/test/resources/config/templates/pvp2_post_binding.html
create mode 100644 ms_specific_proxyservice/src/test/resources/config/webcontent/autocommit.js
create mode 100644 ms_specific_proxyservice/src/test/resources/config/webcontent/css/css_error.css
create mode 100644 ms_specific_proxyservice/src/test/resources/config/webcontent/img/ajax-loader.gif
create mode 100644 ms_specific_proxyservice/src/test/resources/data/Response_with_EID.xml
create mode 100644 ms_specific_proxyservice/src/test/resources/data/idp_metadata_classpath_entity.xml
(limited to 'modules/authmodule-eIDAS-v2/src/main/resources')
diff --git a/connector/src/main/resources/application.properties b/connector/src/main/resources/application.properties
index e062c32b..700f4d74 100644
--- a/connector/src/main/resources/application.properties
+++ b/connector/src/main/resources/application.properties
@@ -159,9 +159,6 @@ eidas.ms.auth.eIDAS.zmrclient.debug.logfullmessages=false
#eidas.ms.auth.eIDAS.ernpclient.ssl.keyStore.password=password
#eidas.ms.auth.eIDAS.ernpclient.ssl.key.alias=meta
#eidas.ms.auth.eIDAS.ernpclient.ssl.key.password=password
-eidas.ms.client.http.connection.timeout.request=15
-eidas.ms.client.http.connection.timeout.socket=30
-
# SAML2 ID Austria client for matching
#eidas.ms.modules.idaustriaclient.keystore.type=jks
diff --git a/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml b/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
deleted file mode 100644
index cde9687e..00000000
--- a/modules/authmodule-eIDAS-v2/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml b/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
new file mode 100644
index 00000000..cde9687e
--- /dev/null
+++ b/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
index d36e4712..571ad8ab 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
@@ -45,8 +45,11 @@ public class MsProxyServiceSpringResourceProvider implements SpringResourceProvi
public Resource[] getResourcesToLoad() {
final ClassPathResource eidasProxyServiceConfig =
new ClassPathResource("/spring/eidas_proxy-service.beans.xml", MsProxyServiceSpringResourceProvider.class);
+ final ClassPathResource eidasRefImplConfig = new ClassPathResource("/eidas_v2_auth_ref_impl_config.beans.xml",
+ MsProxyServiceSpringResourceProvider.class);
+
- return new Resource[] { eidasProxyServiceConfig };
+ return new Resource[] { eidasProxyServiceConfig, eidasRefImplConfig };
}
}
diff --git a/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml b/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml
index 2055b5a9..1eb33e93 100644
--- a/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml
+++ b/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml
@@ -24,5 +24,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
index 08b25f0f..0b7540f5 100644
--- a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
+++ b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
@@ -31,12 +31,4 @@
value="src/test/resources/config/additional-attributes.xml" />
-
-
-
-
-
\ No newline at end of file
diff --git a/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/pvp/PvpEndPointConfiguration.java b/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/pvp/PvpEndPointConfiguration.java
new file mode 100644
index 00000000..20caf7e5
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/pvp/PvpEndPointConfiguration.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2018 A-SIT Plus GmbH
+ * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
+ * A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "License");
+ * You may not use this work except in compliance with the License.
+ * You may obtain a copy of the License at:
+ * https://joinup.ec.europa.eu/news/understanding-eupl-v12
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+*/
+
+package at.asitplus.eidas.specific.proxy.pvp;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.opensaml.saml.saml2.metadata.ContactPerson;
+import org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration;
+import org.opensaml.saml.saml2.metadata.EmailAddress;
+import org.opensaml.saml.saml2.metadata.GivenName;
+import org.opensaml.saml.saml2.metadata.Organization;
+import org.opensaml.saml.saml2.metadata.OrganizationDisplayName;
+import org.opensaml.saml.saml2.metadata.OrganizationName;
+import org.opensaml.saml.saml2.metadata.OrganizationURL;
+import org.opensaml.saml.saml2.metadata.SurName;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
+import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
+import at.gv.egiz.eaaf.core.exceptions.EaafException;
+import at.gv.egiz.eaaf.modules.pvp2.api.IPvp2BasicConfiguration;
+import at.gv.egiz.eaaf.modules.pvp2.impl.utils.Saml2Utils;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class PvpEndPointConfiguration implements IPvp2BasicConfiguration {
+ private static final String DEFAULT_XML_LANG = "en";
+
+ @Autowired(required = true)
+ IConfiguration basicConfiguration;
+
+ @Override
+ public String getIdpEntityId(String authUrl) throws EaafException {
+ return removePostFix(authUrl) + MsEidasNodeConstants.ENDPOINT_PVP_METADATA;
+
+ }
+
+ @Override
+ public String getIdpSsoPostService(String authUrl) throws EaafException {
+ return removePostFix(authUrl) + MsEidasNodeConstants.ENDPOINT_PVP_POST;
+
+ }
+
+ @Override
+ public String getIdpSsoRedirectService(String authUrl) throws EaafException {
+ return removePostFix(authUrl) + MsEidasNodeConstants.ENDPOINT_PVP_REDIRECT;
+
+ }
+
+ @Override
+ public String getIdpSsoSoapService(String extractAuthUrlFromRequest) throws EaafException {
+ log.warn("PVP S-Profile End-Point does NOT support SOAP Binding");
+ return null;
+
+ }
+
+ @Override
+ public List getIdpContacts() throws EaafException {
+ final ContactPerson contactPerson = Saml2Utils.createSamlObject(ContactPerson.class);
+ final GivenName givenName = Saml2Utils.createSamlObject(GivenName.class);
+ final SurName surname = Saml2Utils.createSamlObject(SurName.class);
+ final EmailAddress emailAddress = Saml2Utils.createSamlObject(EmailAddress.class);
+
+ givenName.setValue(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_CONTACT_GIVENNAME));
+ surname.setValue(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_CONTACT_SURNAME));
+ emailAddress.setURI(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_CONTACT_EMAIL));
+
+ contactPerson.setType(ContactPersonTypeEnumeration.TECHNICAL);
+ contactPerson.setGivenName(givenName);
+ contactPerson.setSurName(surname);
+ contactPerson.getEmailAddresses().add(emailAddress);
+
+ return Arrays.asList(contactPerson);
+
+ }
+
+ @Override
+ public Organization getIdpOrganisation() throws EaafException {
+ final Organization organisation = Saml2Utils.createSamlObject(Organization.class);
+ final OrganizationName orgName = Saml2Utils.createSamlObject(OrganizationName.class);
+ final OrganizationDisplayName orgDisplayName = Saml2Utils.createSamlObject(OrganizationDisplayName.class);
+ final OrganizationURL orgUrl = Saml2Utils.createSamlObject(OrganizationURL.class);
+
+ orgName.setXMLLang(DEFAULT_XML_LANG);
+ orgName.setValue(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_ORGANISATION_NAME));
+
+ orgDisplayName.setXMLLang(DEFAULT_XML_LANG);
+ orgDisplayName.setValue(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_ORGANISATION_FRIENDLYNAME));
+
+ orgUrl.setXMLLang(DEFAULT_XML_LANG);
+ orgUrl.setURI(getAndVerifyFromConfiguration(
+ MsEidasNodeConstants.CONFIG_PROPS_METADATA_ORGANISATION_URL));
+
+
+ organisation.getOrganizationNames().add(orgName);
+ organisation.getDisplayNames().add(orgDisplayName);
+ organisation.getURLs().add(orgUrl);
+
+ return organisation;
+ }
+
+ @Override
+ public IConfiguration getBasicConfiguration() {
+ return basicConfiguration;
+ }
+
+ private String removePostFix(String url) {
+ if (url != null && url.endsWith("/")) {
+ return url.substring(0, url.length() - 1);
+ } else {
+ return url;
+ }
+ }
+
+ private String getAndVerifyFromConfiguration(String configKey) throws EaafConfigurationException {
+ final String value = basicConfiguration.getBasicConfiguration(configKey);
+ if (StringUtils.isEmpty(value)) {
+ throw new EaafConfigurationException("config.08",
+ new Object[] {configKey});
+
+ }
+
+ return value;
+ }
+}
diff --git a/ms_specific_proxyservice/src/main/resources/application.properties b/ms_specific_proxyservice/src/main/resources/application.properties
index 9f1b68e2..7d8c199f 100644
--- a/ms_specific_proxyservice/src/main/resources/application.properties
+++ b/ms_specific_proxyservice/src/main/resources/application.properties
@@ -73,6 +73,7 @@ eidas.ms.configuration.pvp.enable.entitycategories=false
#### eIDAS ms-specific Proxy-Service configuration
eidas.ms.auth.eIDAS.node_v2.proxy.entityId=ownSpecificProxy
#eidas.ms.auth.eIDAS.node_v2.proxy.forward.endpoint=
+eidas.ms.auth.eIDAS.node_v2.forward.method=POST
# Mandate configuration
eidas.ms.auth.eIDAS.proxy.mandates.enabled=false
diff --git a/ms_specific_proxyservice/src/main/resources/specific_eIDAS_proxy.beans.xml b/ms_specific_proxyservice/src/main/resources/specific_eIDAS_proxy.beans.xml
index c5312751..5633cb0e 100644
--- a/ms_specific_proxyservice/src/main/resources/specific_eIDAS_proxy.beans.xml
+++ b/ms_specific_proxyservice/src/main/resources/specific_eIDAS_proxy.beans.xml
@@ -12,6 +12,8 @@
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
+
+
\ No newline at end of file
diff --git a/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java b/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
new file mode 100644
index 00000000..bc6f5317
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
@@ -0,0 +1,480 @@
+package at.asitplus.eidas.specific.proxy.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.util.Base64;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.Timer;
+import java.util.UUID;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.ignite.Ignition;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.opensaml.core.config.InitializationException;
+import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.core.xml.util.XMLObjectSupport;
+import org.opensaml.saml.metadata.resolver.impl.ResourceBackedMetadataResolver;
+import org.opensaml.saml.saml2.core.Issuer;
+import org.opensaml.saml.saml2.core.RequestAbstractType;
+import org.opensaml.saml.saml2.core.Response;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.annotation.DirtiesContext.ClassMode;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.util.Base64Utils;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import com.google.common.collect.ImmutableSet;
+
+import at.asitplus.eidas.specific.modules.auth.idaustria.controller.IdAustriaAuthSignalController;
+import at.asitplus.eidas.specific.modules.auth.idaustria.utils.IdAustriaAuthCredentialProvider;
+import at.asitplus.eidas.specific.modules.auth.idaustria.utils.IdAustriaAuthMetadataProvider;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
+import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
+import at.asitplus.eidas.specific.modules.msproxyservice.protocol.EidasProxyServiceController;
+import at.gv.egiz.components.spring.api.SpringBootApplicationContextInitializer;
+import at.gv.egiz.eaaf.core.api.IStatusMessenger;
+import at.gv.egiz.eaaf.core.api.data.EaafConstants;
+import at.gv.egiz.eaaf.core.impl.idp.controller.ProtocolFinalizationController;
+import at.gv.egiz.eaaf.core.impl.logging.LogMessageProviderFactory;
+import at.gv.egiz.eaaf.core.impl.utils.DomUtils;
+import at.gv.egiz.eaaf.modules.pvp2.api.credential.EaafX509Credential;
+import at.gv.egiz.eaaf.modules.pvp2.exception.Pvp2MetadataException;
+import at.gv.egiz.eaaf.modules.pvp2.exception.SamlSigningException;
+import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.OpenSaml3ResourceAdapter;
+import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xInitializer;
+import at.gv.egiz.eaaf.modules.pvp2.impl.utils.Saml2Utils;
+import eu.eidas.auth.cache.IgniteInstanceInitializerSpecificCommunication;
+import eu.eidas.auth.commons.EidasParameterKeys;
+import eu.eidas.auth.commons.attribute.AttributeValue;
+import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
+import eu.eidas.auth.commons.light.ILightResponse;
+import eu.eidas.auth.commons.light.impl.LightRequest;
+import eu.eidas.auth.commons.tx.BinaryLightToken;
+import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
+import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
+import lombok.SneakyThrows;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.xml.XMLParserException;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest
+@ContextConfiguration(initializers = {
+ org.springframework.boot.context.config.DelegatingApplicationContextInitializer.class,
+ SpringBootApplicationContextInitializer.class
+ })
+@TestPropertySource(locations = { "file:src/test/resources/config/junit_config_1_springboot.properties" })
+@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
+@ActiveProfiles(profiles = {"JUNIT", "jUnitTestMode"})
+public class FullStartUpAndProcessTest {
+
+ private static final String METADATA_PATH = "classpath:/data/idp_metadata_classpath_entity.xml";
+ private static final String FINAL_REDIRECT = "https://localhost/ms_proxy/public/secure/finalizeAuthProtocol?pendingid=";
+ private static final String ERROR_REDIRECT = "https://localhost/ms_proxy/public/secure/errorHandling?errorid=";
+
+
+ @Autowired private WebApplicationContext wac;
+
+ @Autowired private ResourceLoader resourceLoader;
+ @Autowired private EidasAttributeRegistry attrRegistry;
+
+ @Autowired private IdAustriaAuthSignalController idAustriaEndpoint;
+ @Autowired private IdAustriaAuthMetadataProvider idAustriaMetadata;
+ @Autowired private IdAustriaAuthCredentialProvider credentialProvider;
+
+ @Autowired private EidasProxyServiceController eidasProxyEndpoint;
+ @Autowired private ProtocolFinalizationController finalize;
+
+ @Autowired private IStatusMessenger messager;
+
+ /**
+ * jUnit class initializer.
+ * @throws InterruptedException In case of an error
+ * @throws ComponentInitializationException In case of an error
+ * @throws InitializationException In case of an error
+ *
+ */
+ @BeforeClass
+ @SneakyThrows
+ public static void classInitializer() {
+ final String current = new java.io.File(".").toURI().toString();
+ System.clearProperty("eidas.ms.configuration");
+
+ //eIDAS Ref. Impl. properties
+ System.setProperty("EIDAS_CONFIG_REPOSITORY", current.substring("file:".length())
+ + "../basicConfig/eIDAS/");
+ System.setProperty("SPECIFIC_CONNECTOR_CONFIG_REPOSITORY", current.substring("file:".length())
+ + "../basicConfig/eIDAS/");
+ System.setProperty("SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY", current.substring("file:".length())
+ + "../basicConfig/eIDAS/");
+
+ EaafOpenSaml3xInitializer.eaafInitialize();
+
+ }
+
+ /**
+ * Test shut-down.
+ *
+ * @throws Exception In case of an error
+ */
+ @AfterClass
+ @SneakyThrows
+ public static void closeIgniteNode() {
+ System.out.println("Closiong Ignite Node ... ");
+ Ignition.stopAll(true);
+
+ //set Ignite-node holder to 'null' because static holders are shared between different tests
+ final Field field = IgniteInstanceInitializerSpecificCommunication.class.getDeclaredField("instance");
+ field.setAccessible(true);
+ field.set(null, null);
+
+ }
+
+ /**
+ * jUnit test set-up.
+ *
+ *
+ */
+ @Before
+ public void setup() throws IOException {
+ DefaultMockMvcBuilder builder = MockMvcBuilders.webAppContextSetup(this.wac);
+ @SuppressWarnings("rawtypes")
+ Map filters = wac.getBeansOfType(FilterRegistrationBean.class);
+ for (FilterRegistrationBean> filter : filters.values()) {
+ if (filter.isEnabled()) {
+ builder.addFilter(filter.getFilter(), "/*");
+
+ }
+ }
+
+ LogMessageProviderFactory.setStatusMessager(messager);
+
+ }
+
+ @Test
+ @SneakyThrows
+ public void simpleError() {
+ MockHttpServletRequest proxyHttpReq = new MockHttpServletRequest("POST", "https://localhost/ms_proxy");
+ String spCountryCode = injectEidas2AuthnReq(proxyHttpReq);
+ MockHttpServletResponse proxyHttpResp = new MockHttpServletResponse();
+ RequestContextHolder.resetRequestAttributes();
+ RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(proxyHttpReq, proxyHttpResp));
+
+ injectIdAustriaSaml2Metadata();
+
+
+ // send eIDAS Proxy-Service process hand-over
+ eidasProxyEndpoint.receiveEidasAuthnRequest(proxyHttpReq, proxyHttpResp);
+
+
+ // extract SAML2 AuthnRequest to IDA system
+ assertEquals("forward to finalization", 200, proxyHttpResp.getStatus());
+ assertEquals("forward to eIDAS Node page", "text/html;charset=UTF-8", proxyHttpResp.getContentType());
+ String saml2ReqPage = proxyHttpResp.getContentAsString();
+ assertNotNull("selectionPage is null", saml2ReqPage);
+ assertFalse("selectionPage is empty", saml2ReqPage.isEmpty());
+
+ String saml2ReqB64 = extractRequestToken(saml2ReqPage, "> attr = attributes.getAttributeValuesByNameUri(attrName);
+ assertNotNull("Attribute: " + attrName, attr);
+ assertFalse("Empty AttributeValue: " + attrName, attr.isEmpty());
+ assertNotNull("AttributeValue: " + attrName, attr.asList().get(0));
+ assertEquals("Wrong AttributeValue: " + attrName, expected, attr.asList().get(0).getValue());
+
+ }
+
+ @SneakyThrows
+ private String validateSaml2Request(String saml2ReqB64, String spCountryCode) {
+ final RequestAbstractType authnReq = (RequestAbstractType) XMLObjectSupport.unmarshallFromInputStream(
+ XMLObjectProviderRegistrySupport.getParserPool(),
+ new ByteArrayInputStream(Base64Utils.decodeFromString(saml2ReqB64)));
+
+ // check requested attributes
+ assertEquals("wrong number of extension elements",
+ 1, authnReq.getExtensions().getOrderedChildren().size());
+ assertEquals("wrong number of requested attributes",
+ 4, authnReq.getExtensions().getOrderedChildren().get(0).getOrderedChildren().size());
+
+ return authnReq.getID();
+ }
+
+ @SneakyThrows
+ private String buildSaml2Response(String saml2ReqId) {
+ final Response response = initializeResponse(
+ "classpath:/data/idp_metadata_classpath_entity.xml",
+ "/data/Response_with_EID.xml",
+ credentialProvider.getMessageSigningCredential(),
+ true, saml2ReqId);
+ return Base64.getEncoder().encodeToString(
+ DomUtils.serializeNode(XMLObjectSupport.getMarshaller(response).marshall(response)).getBytes(
+ "UTF-8"));
+
+ }
+
+ private Response initializeResponse(String idpEntityId, String responsePath, EaafX509Credential credential,
+ boolean validConditions, String saml2ReqId) throws SamlSigningException, XMLParserException, UnmarshallingException,
+ Pvp2MetadataException {
+
+ final Response response = (Response) XMLObjectSupport.unmarshallFromInputStream(
+ XMLObjectProviderRegistrySupport.getParserPool(),
+ FullStartUpAndProcessTest.class.getResourceAsStream(responsePath));
+ response.setIssueInstant(Instant.now());
+ final Issuer issuer = Saml2Utils.createSamlObject(Issuer.class);
+ issuer.setValue(idpEntityId);
+ response.setIssuer(issuer);
+ response.setInResponseTo(saml2ReqId);
+
+ if (validConditions) {
+ response.getAssertions().get(0).getConditions().setNotOnOrAfter(Instant.now().plusSeconds(5*60));
+
+ }
+
+ return Saml2Utils.signSamlObject(response, credential, true);
+ }
+
+ @SneakyThrows
+ private void injectIdAustriaSaml2Metadata() {
+ final org.springframework.core.io.Resource resource = resourceLoader.getResource(METADATA_PATH);
+ Timer timer = new Timer("PVP metadata-resolver refresh");
+ ResourceBackedMetadataResolver fileSystemResolver =
+ new ResourceBackedMetadataResolver(timer, new OpenSaml3ResourceAdapter(resource));
+ fileSystemResolver.setId("test");
+ fileSystemResolver.setParserPool(XMLObjectProviderRegistrySupport.getParserPool());
+ fileSystemResolver.initialize();
+ idAustriaMetadata.addMetadataResolverIntoChain(fileSystemResolver);
+
+
+ }
+
+ private String extractRequestToken(String selectionPage, String selector) {
+ int start = selectionPage.indexOf(selector);
+ assertTrue("find no starting element of selector", start > 0);
+ int end = selectionPage.indexOf("\"", start + selector.length());
+ assertTrue("find no end tag", end > 0);
+ return selectionPage.substring(start + selector.length(), end);
+
+ }
+
+ @SneakyThrows
+ private String injectEidas2AuthnReq(MockHttpServletRequest proxyHttpReq) {
+ String spCountryCode = "XX";
+ LightRequest.Builder authnReqBuilder = LightRequest.builder()
+ .id(UUID.randomUUID().toString())
+ .issuer(RandomStringUtils.randomAlphabetic(10))
+ .citizenCountryCode(RandomStringUtils.randomAlphabetic(2).toUpperCase())
+ .levelOfAssurance(EaafConstants.EIDAS_LOA_HIGH)
+ .spCountryCode(spCountryCode)
+ .spType("public")
+ .requestedAttributes(ImmutableAttributeMap.builder()
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
+ EidasConstants.eIDAS_ATTR_PERSONALIDENTIFIER).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
+ EidasConstants.eIDAS_ATTR_CURRENTGIVENNAME).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
+ EidasConstants.eIDAS_ATTR_CURRENTFAMILYNAME).first())
+ .put(attrRegistry.getCoreAttributeRegistry().getByFriendlyName(
+ EidasConstants.eIDAS_ATTR_DATEOFBIRTH).first())
+ .build());
+
+ final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =
+ (SpecificCommunicationService) wac.getBean(
+ SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE.toString());
+ BinaryLightToken token = springManagedSpecificConnectorCommunicationService.putRequest(authnReqBuilder.build());
+ proxyHttpReq.addParameter(EidasParameterKeys.TOKEN.toString(), Base64Utils.encodeToString(token.getTokenBytes()));
+
+ return spCountryCode;
+
+ }
+
+}
diff --git a/ms_specific_proxyservice/src/test/resources/config/eIDAS/additional-attributes.xml b/ms_specific_proxyservice/src/test/resources/config/eIDAS/additional-attributes.xml
new file mode 100644
index 00000000..6510546e
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/eIDAS/additional-attributes.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+ Dynamic attributes
+
+ http://eidas.europa.eu/attributes/naturalperson/AdditionalAttribute
+ AdditionalAttribute
+ NaturalPerson
+ false
+ http://www.w3.org/2001/XMLSchema
+ string
+ xs
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalAdditionalAttribute
+ LegalAdditionalAttribute
+ LegalPerson
+ false
+ http://www.w3.org/2001/XMLSchema
+ string
+ xs
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/eIDAS/eidas-attributes.xml b/ms_specific_proxyservice/src/test/resources/config/eIDAS/eidas-attributes.xml
new file mode 100644
index 00000000..cbae35db
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/eIDAS/eidas-attributes.xml
@@ -0,0 +1,376 @@
+
+
+
+
+
+ eIDAS attributes
+
+ http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
+ PersonIdentifier
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ PersonIdentifierType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName
+ FamilyName
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentFamilyNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
+ FirstName
+ NaturalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentGivenNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/DateOfBirth
+ DateOfBirth
+ NaturalPerson
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ DateOfBirthType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.DateTimeAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/BirthName
+ BirthName
+ NaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson
+ BirthNameType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth
+ PlaceOfBirth
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ PlaceOfBirthType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/CurrentAddress
+ CurrentAddress
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ CurrentAddressType
+ eidas-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.CurrentAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/Gender
+ Gender
+ NaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson
+ GenderType
+ eidas-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.GenderAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalPersonIdentifier
+ LegalPersonIdentifier
+ LegalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/legalperson
+ LegalPersonIdentifierType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalName
+ LegalName
+ LegalPerson
+ true
+ true
+ http://eidas.europa.eu/attributes/legalperson
+ LegalNameType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LegalPersonAddress
+ LegalAddress
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ LegalPersonAddressType
+ eidas-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.LegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/VATRegistrationNumber
+ VATRegistration
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ VATRegistrationNumberType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/TaxReference
+ TaxReference
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ TaxReferenceType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/D-2012-17-EUIdentifier
+ D-2012-17-EUIdentifier
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ D-2012-17-EUIdentifierType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/LEI
+ LEI
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ LEIType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/EORI
+ EORI
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ EORIType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/SEED
+ SEED
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ SEEDType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/SIC
+ SIC
+ LegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson
+ SICType
+ eidas-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/PersonIdentifier
+ RepresentativePersonIdentifier
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ PersonIdentifierType
+ eidas-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentFamilyName
+ RepresentativeFamilyName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentFamilyNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentGivenName
+ RepresentativeFirstName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentGivenNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/DateOfBirth
+ RepresentativeDateOfBirth
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ DateOfBirthType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.DateTimeAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/BirthName
+ RepresentativeBirthName
+ RepresentativeNaturalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ BirthNameType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/PlaceOfBirth
+ RepresentativePlaceOfBirth
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ PlaceOfBirthType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/CurrentAddress
+ RepresentativeCurrentAddress
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ CurrentAddressType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvCurrentAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/naturalperson/representative/Gender
+ RepresentativeGender
+ RepresentativeNaturalPerson
+ false
+ http://eidas.europa.eu/attributes/naturalperson/representative
+ GenderType
+ eidas-reprentative-natural
+ eu.eidas.auth.commons.protocol.eidas.impl.GenderAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonIdentifier
+ RepresentativeLegalPersonIdentifier
+ RepresentativeLegalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonIdentifierType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalName
+ RepresentativeLegalName
+ RepresentativeLegalPerson
+ false
+ true
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalNameType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonAddress
+ RepresentativeLegalAddress
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonAddressType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvLegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/VATRegistrationNumber
+ RepresentativeVATRegistration
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ VATRegistrationNumberType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/TaxReference
+ RepresentativeTaxReference
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ TaxReferenceType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/D-2012-17-EUIdentifier
+ RepresentativeD-2012-17-EUIdentifier
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ D-2012-17-EUIdentifierType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LEI
+ RepresentativeLEI
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LEIType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/EORI
+ RepresentativeEORI
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ EORIType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/SEED
+ RepresentativeSEED
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ SEEDType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/SIC
+ RepresentativeSIC
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ SICType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/LegalPersonAddress
+ RepresentativeLegalAddress
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ LegalPersonAddressType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.protocol.eidas.impl.RepvLegalAddressAttributeValueMarshaller
+
+ http://eidas.europa.eu/attributes/legalperson/representative/VATRegistrationNumber
+ RepresentativeVATRegistration
+ RepresentativeLegalPerson
+ false
+ http://eidas.europa.eu/attributes/legalperson/representative
+ VATRegistrationNumberType
+ eidas-reprentative-legal
+ eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller
+
+
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/eIDAS/igniteSpecificCommunication.xml b/ms_specific_proxyservice/src/test/resources/config/eIDAS/igniteSpecificCommunication.xml
new file mode 100644
index 00000000..f817f5a4
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/eIDAS/igniteSpecificCommunication.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionConnector.xml b/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionConnector.xml
new file mode 100644
index 00000000..d1fc042d
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionConnector.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ specificCommunicationDefinitionConnectorRequest
+ specificConnector
+
+
+ mySecretConnectorRequest
+ SHA-256
+
+
+ specificCommunicationDefinitionConnectorResponse
+ specificConnector
+
+
+ mySecretConnectorResponse
+ SHA-256
+
+
+ 65535
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionProxyservice.xml b/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionProxyservice.xml
new file mode 100644
index 00000000..c8caf16b
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/eIDAS/specificCommunicationDefinitionProxyservice.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ true
+
+
+ specificCommunicationDefinitionProxyserviceRequest
+ specificProxyService
+
+ mySecretProxyserviceRequest
+ SHA-256
+
+
+ specificCommunicationDefinitionProxyserviceResponse
+ specificProxyService
+
+ mySecretProxyserviceResponse
+ SHA-256
+
+
+ 65535
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/junit_config_1_springboot.properties b/ms_specific_proxyservice/src/test/resources/config/junit_config_1_springboot.properties
new file mode 100644
index 00000000..8cd77046
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/junit_config_1_springboot.properties
@@ -0,0 +1,116 @@
+## Set Spring-Boot profile-configuration to 2.3 style
+spring.config.use-legacy-processing=true
+
+## ApplicationServer configuration
+server.servlet.contextPath=/ms_proxyservice
+#server.port=7080
+
+app.build.artifactId=ms_proxyservice
+
+
+
+#############################################################################
+## SpringBoot Admin client
+spring.boot.admin.client.enabled=false
+
+#############################################################################
+## SpringBoot Actuator
+management.endpoints.web.exposure.include=health,info
+
+#############################################################################
+## Common parts of MS-speccific eIDAS application configuration
+
+eidas.ms.context.url.prefix=https://localhost/ms_proxy/
+eidas.ms.context.url.request.validation=false
+eidas.ms.core.configRootDir=file:./src/test/resources/config/
+eidas.ms.context.use.clustermode=true
+eidas.ms.core.logging.level.info.errorcodes=auth.21
+
+##Monitoring
+eidas.ms.monitoring.eIDASNode.metadata.url=
+
+
+##Specific logger configuration
+eidas.ms.technicallog.write.MDS.into.techlog=true
+eidas.ms.revisionlog.write.MDS.into.revisionlog=true
+eidas.ms.revisionlog.logIPAddressOfUser=true
+
+
+##Directory for static Web content
+eidas.ms.webcontent.static.directory=webcontent/
+eidas.ms.webcontent.templates=templates/
+eidas.ms.webcontent.properties=properties/messages
+
+
+## extended validation of pending-request Id's
+eidas.ms.core.pendingrequestid.maxlifetime=300
+eidas.ms.core.pendingrequestid.digist.algorithm=HmacSHA256
+eidas.ms.core.pendingrequestid.digist.secret=pendingReqIdSecret
+
+
+## HTTP-client defaults
+eidas.ms.client.http.connection.timeout.socket=15
+eidas.ms.client.http.connection.timeout.connection=15
+eidas.ms.client.http.connection.timeout.request=15
+
+
+## Common PVP2 S-Profile (SAML2) configuration
+eidas.ms.pvp2.metadata.organisation.name=JUnit
+eidas.ms.pvp2.metadata.organisation.friendyname=For testing with jUnit
+eidas.ms.pvp2.metadata.organisation.url=http://junit.test
+eidas.ms.pvp2.metadata.contact.givenname=Max
+eidas.ms.pvp2.metadata.contact.surname=Mustermann
+eidas.ms.pvp2.metadata.contact.email=max@junit.test
+
+##only for advanced config
+eidas.ms.configuration.pvp.scheme.validation=true
+eidas.ms.configuration.pvp.enable.entitycategories=false
+
+
+#############################################################################
+## MS-speccific eIDAS-Proxy-Service configuration
+
+
+#### eIDAS ms-specific Proxy-Service configuration
+eidas.ms.auth.eIDAS.node_v2.proxy.entityId=ownSpecificProxy
+eidas.ms.auth.eIDAS.node_v2.proxy.forward.endpoint=http://localhost/EidasNode
+eidas.ms.auth.eIDAS.node_v2.forward.method=POST
+
+# Mandate configuration
+eidas.ms.auth.eIDAS.proxy.mandates.enabled=false
+#eidas.ms.auth.eIDAS.proxy.mandates.profiles.natural.default=
+#eidas.ms.auth.eIDAS.proxy.mandates.profiles.legal.default=
+
+
+## special foreign eIDAS-Connector configuration
+#eidas.ms.connector.0.uniqueID=https://demo.egiz.gv.at/demoportal_moaid-2.0/sp/eidas/metadata
+#eidas.ms.connector.0.countryCode=CC
+#eidas.ms.connector.0.mandates.enabled=false
+#eidas.ms.connector.0.mandates.natural=
+#eidas.ms.connector.0.mandates.legal=
+#eidas.ms.connector.0.auth.idaustria.entityId=
+
+
+## PVP2 S-Profile communication with ID Austria System
+# EntityId and optional metadata of ID Austria System
+eidas.ms.modules.idaustriaauth.idp.entityId=classpath:/data/idp_metadata_classpath_entity.xml
+#eidas.ms.modules.idaustriaauth.idp.metadataUrl=
+
+# SAML2 client configuration
+eidas.ms.modules.idaustriaauth.keystore.path=keys/junit_test.jks
+eidas.ms.modules.idaustriaauth.keystore.password=password
+eidas.ms.modules.idaustriaauth.keystore.type=jks
+
+eidas.ms.modules.idaustriaauth.metadata.sign.alias=meta
+eidas.ms.modules.idaustriaauth.metadata.sign.password=password
+eidas.ms.modules.idaustriaauth.request.sign.alias=sig
+eidas.ms.modules.idaustriaauth.request.sign.password=password
+eidas.ms.modules.idaustriaauth.response.encryption.alias=enc
+eidas.ms.modules.idaustriaauth.response.encryption.password=password
+
+eidas.ms.modules.idaustriaauth.truststore.path=keys/junit_test.jks
+eidas.ms.modules.idaustriaauth.truststore.password=password
+eidas.ms.modules.idaustriaauth.truststore.type=jks
+
+
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/keys/Metadata.pem b/ms_specific_proxyservice/src/test/resources/config/keys/Metadata.pem
new file mode 100644
index 00000000..b544c194
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/keys/Metadata.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+jCCAeKgAwIBAgIEXjF+fTANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJB
+VDENMAsGA1UEBwwERUdJWjEOMAwGA1UECgwFalVuaXQxETAPBgNVBAMMCE1ldGFk
+YXRhMB4XDTIwMDEyOTEyNDU0OVoXDTI2MDEyODEyNDU0OVowPzELMAkGA1UEBhMC
+QVQxDTALBgNVBAcMBEVHSVoxDjAMBgNVBAoMBWpVbml0MREwDwYDVQQDDAhNZXRh
+ZGF0YTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK230G3dxNbNlSYA
+O5Kx/Js0aBAgxMt7q9m+dA35fK/dOvF/GjrqjWsMCnax+no9gLnq6x0gXiJclz6H
+rp/YDOfLrJjMpNL/r0FWT947vbnEj7eT8TdY5d6Yi8AZulZmjiCI5nbZh2zwrP4+
+WqRroLoPhXQj8mDyp26M4xHBBUhLMRc2HV4S+XH4uNZ/vTmb8vBg31XGHCY33gl7
+/KA54JNGxJdN8Dxv6yHYsm91ZfVrX39W0iYLUNhUCkolwuQmjDVfrExM8BTLIONb
+f+erJoCm3A9ghZyDYRQ/e69/UEUqDa6XOzykr88INkQscEiAXCDS+EBPMpKo+t3l
+PIA9r7kCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAh/2mg4S03bdZy1OVtEAudBT9
+YZb9OF34hxPtNbkB/V04wSIg1d4TBr5KDhV7CdiUOxPZzHpS8LUCgfGX306FB6NX
+zh/b67uTOPaE72AB4VIT/Np0fsM7k5WhG9k9NoprIGiqCz2lXcfpZiT+LtSO1vWS
+YI87wR9KOSWjcw/5i5qZIAJuwvLCQj5JtUsmrhHK75222J3TJf4dS/gfN4xfY2rW
+9vcXtH6//8WdWp/zx9V7Z1ZsDb8TDKtBCEGuFDgVeU5ScKtVq8qRoUKD3Ve76cZi
+purO3KrRrVAuZP2EfLkZdHEHqe8GPigNnZ5kTn8V2VJ3iRAQ73hpJRR98tFd0A==
+-----END CERTIFICATE-----
diff --git a/ms_specific_proxyservice/src/test/resources/config/keys/junit.jks b/ms_specific_proxyservice/src/test/resources/config/keys/junit.jks
new file mode 100644
index 00000000..59e6ad13
Binary files /dev/null and b/ms_specific_proxyservice/src/test/resources/config/keys/junit.jks differ
diff --git a/ms_specific_proxyservice/src/test/resources/config/keys/junit_test.jks b/ms_specific_proxyservice/src/test/resources/config/keys/junit_test.jks
new file mode 100644
index 00000000..ee6254a9
Binary files /dev/null and b/ms_specific_proxyservice/src/test/resources/config/keys/junit_test.jks differ
diff --git a/ms_specific_proxyservice/src/test/resources/config/keys/teststore.jks b/ms_specific_proxyservice/src/test/resources/config/keys/teststore.jks
new file mode 100644
index 00000000..fcc6400c
Binary files /dev/null and b/ms_specific_proxyservice/src/test/resources/config/keys/teststore.jks differ
diff --git a/ms_specific_proxyservice/src/test/resources/config/logback_config.xml b/ms_specific_proxyservice/src/test/resources/config/logback_config.xml
new file mode 100644
index 00000000..bb3de3e8
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/logback_config.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${catalina.base}/logs/eIDAS_node.log
+
+ %5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
+
+
+ 9999
+ ${catalina.base}/logs/eIDAS_node.log.%i
+
+
+ 10000KB
+
+
+
+
+ ${catalina.base}/logs/eidas-ms-reversion.log
+
+ %5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
+
+
+ 9999
+ ${catalina.base}/logs/eidas-ms-reversion.log.%i
+
+
+ 10000KB
+
+
+
+
+ ${catalina.base}/logs/eidas-ms-reversion.log
+
+ %5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
+
+
+ 9999
+ ${catalina.base}/logs/eidas-ms-reversion.log.%i
+
+
+ 10000KB
+
+
+
+
+ ${catalina.base}/logs/eidas-ms-statistic.log
+
+ %5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
+
+
+ 9999
+ ${catalina.base}/logs/eidas-ms-statistic.log.%i
+
+
+ 10000KB
+
+
+
+
+ ${catalina.base}/logs/console.log
+
+ %5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
+
+
+ 9999
+ ${catalina.base}/logs/console.log.%i
+
+
+ 10000KB
+
+
+
+
+ %5p | %d{dd HH:mm:ss,SSS} | %20c | %10t | %m%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ms_specific_proxyservice/src/test/resources/config/properties/messages.properties b/ms_specific_proxyservice/src/test/resources/config/properties/messages.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/ms_specific_proxyservice/src/test/resources/config/properties/messages_de.properties b/ms_specific_proxyservice/src/test/resources/config/properties/messages_de.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/ms_specific_proxyservice/src/test/resources/config/properties/messages_en.properties b/ms_specific_proxyservice/src/test/resources/config/properties/messages_en.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/ms_specific_proxyservice/src/test/resources/config/templates/eidas_node_forward.html b/ms_specific_proxyservice/src/test/resources/config/templates/eidas_node_forward.html
new file mode 100644
index 00000000..6dffa34b
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/templates/eidas_node_forward.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+ Your login is being processed. Thank you for
+ waiting.
+
+
+
+
+
\ No newline at end of file
diff --git a/ms_specific_proxyservice/src/test/resources/config/templates/error.html b/ms_specific_proxyservice/src/test/resources/config/templates/error.html
new file mode 100644
index 00000000..21f589cd
--- /dev/null
+++ b/ms_specific_proxyservice/src/test/resources/config/templates/error.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+An error arise ...
+
+
+
+
+
+
+
+
+
+
Error Information
+
+
Code :
+
Msg :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+