aboutsummaryrefslogtreecommitdiff
path: root/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core
diff options
context:
space:
mode:
authorThomas <>2022-03-09 17:48:56 +0100
committerThomas <>2022-03-09 17:48:56 +0100
commit8e3a0c3699b0b3aa9037f58370ec14df72518c66 (patch)
tree78c31c1d9848d145393727788e78f896f1704a14 /core_common_webapp/src/main/java/at/asitplus/eidas/specific/core
parent6fa8a9968e44fb5d56fc8d9c3ddd536a8997f7a9 (diff)
downloadNational_eIDAS_Gateway-8e3a0c3699b0b3aa9037f58370ec14df72518c66.tar.gz
National_eIDAS_Gateway-8e3a0c3699b0b3aa9037f58370ec14df72518c66.tar.bz2
National_eIDAS_Gateway-8e3a0c3699b0b3aa9037f58370ec14df72518c66.zip
refactor(core): move all project libs into sub-project 'modules'
# Conflicts: # modules/authmodule-eIDAS-v2/repository/eu/eidas/2.5.0/eidas-parent-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.0.0/eidas-commons-2.0.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.1.0/eidas-commons-2.1.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.1.0/eidas-commons-2.1.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.2.1-egiz/eidas-commons-2.2.1-egiz-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.2.1-egiz/eidas-commons-2.2.1-egiz.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.2.1-egiz/eidas-commons-2.2.1-egiz.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.3.0/eidas-commons-2.3.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.3.0/eidas-commons-2.3.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.3.0/eidas-commons-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.4.0/eidas-commons-2.4.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.4.0/eidas-commons-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.5.0/eidas-commons-2.5.0-javadoc.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.5.0/eidas-commons-2.5.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.5.0/eidas-commons-2.5.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-commons/2.5.0/eidas-commons-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.3.0/eidas-jcache-ignite-specific-communication-2.3.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.3.0/eidas-jcache-ignite-specific-communication-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.4.0/eidas-jcache-ignite-specific-communication-2.4.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.4.0/eidas-jcache-ignite-specific-communication-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.5.0/eidas-jcache-ignite-specific-communication-2.5.0-javadoc.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.5.0/eidas-jcache-ignite-specific-communication-2.5.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.5.0/eidas-jcache-ignite-specific-communication-2.5.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite-specific-communication/2.5.0/eidas-jcache-ignite-specific-communication-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.3.0/eidas-jcache-ignite-2.3.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.3.0/eidas-jcache-ignite-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.4.0/eidas-jcache-ignite-2.4.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.4.0/eidas-jcache-ignite-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.5.0/eidas-jcache-ignite-2.5.0-javadoc.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.5.0/eidas-jcache-ignite-2.5.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.5.0/eidas-jcache-ignite-2.5.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-jcache-ignite/2.5.0/eidas-jcache-ignite-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.0.0/eidas-light-commons-2.0.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.1.0/eidas-light-commons-2.1.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.1.0/eidas-light-commons-2.1.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.2.1-egiz/eidas-light-commons-2.2.1-egiz-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.2.1-egiz/eidas-light-commons-2.2.1-egiz.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.2.1-egiz/eidas-light-commons-2.2.1-egiz.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.3.0/eidas-light-commons-2.3.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.3.0/eidas-light-commons-2.3.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.3.0/eidas-light-commons-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.4.0/eidas-light-commons-2.4.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.4.0/eidas-light-commons-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.5.0/eidas-light-commons-2.5.0-javadoc.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.5.0/eidas-light-commons-2.5.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.5.0/eidas-light-commons-2.5.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-light-commons/2.5.0/eidas-light-commons-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.0.0/eidas-parent-2.0.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.1.0/eidas-parent-2.1.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.2.1-egiz/eidas-parent-2.2.1-egiz.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.3.0/eidas-parent-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.4.0/eidas-parent-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-parent/2.5.0/eidas-parent-2.5.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.0.0/eidas-specific-communication-definition-2.0.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.1.0/eidas-specific-communication-definition-2.1.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.1.0/eidas-specific-communication-definition-2.1.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.2.1-egiz/eidas-specific-communication-definition-2.2.1-egiz-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.2.1-egiz/eidas-specific-communication-definition-2.2.1-egiz.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.2.1-egiz/eidas-specific-communication-definition-2.2.1-egiz.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.3.0/eidas-specific-communication-definition-2.3.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.3.0/eidas-specific-communication-definition-2.3.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.3.0/eidas-specific-communication-definition-2.3.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.4.0/eidas-specific-communication-definition-2.4.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.4.0/eidas-specific-communication-definition-2.4.0.pom # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.5.0/eidas-specific-communication-definition-2.5.0-javadoc.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.5.0/eidas-specific-communication-definition-2.5.0-sources.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.5.0/eidas-specific-communication-definition-2.5.0.jar # modules/authmodule-eIDAS-v2/repository/eu/eidas/eidas-specific-communication-definition/2.5.0/eidas-specific-communication-definition-2.5.0.pom # modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/handler/NlEidProcessor.java # modules/authmodule_id-austria/checks/spotbugs-exclude.xml # modules/authmodule_id-austria/pom.xml # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/IdAustriaAuthConstants.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/IdAustriaAuthenticationSpringResourceProvider.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/IdAustriaEidasProxyAuthenticationModulImpl.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/builder/attributes/EidasConnecorUniqueIdAttributeBuilder.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/config/IdAustriaAuthMessageSource.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/config/IdAustriaAuthMetadataConfiguration.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/config/IdAustriaAuthRequestBuilderConfiguration.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/controller/IdAustriaAuthMetadataController.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/controller/IdAustriaAuthSignalController.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/tasks/ReceiveFromIdAustriaSystemTask.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/tasks/RequestIdAustriaSystemTask.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/utils/IdAustriaAuthCredentialProvider.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/utils/IdAustriaAuthMetadataProvider.java # modules/authmodule_id-austria/src/main/java/at/asitplus/eidas/specific/modules/auth/idaustria/utils/Utils.java # modules/authmodule_id-austria/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider # modules/authmodule_id-austria/src/main/resources/META-INF/services/at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder # modules/authmodule_id-austria/src/main/resources/messages/idaustria_auth_messages.properties # modules/authmodule_id-austria/src/main/resources/process/id_austria.Authentication.process.xml # modules/authmodule_id-austria/src/main/resources/spring/id_austria_auth.beans.xml # modules/authmodule_id-austria/src/main/resources/spring/id_austria_task.beans.xml # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/IdAustriaAuthSpringResourceProviderTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/IdAustriaEidasProxyAuthenticationModulImplTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/builder/attributes/EidasConnecorUniqueIdAttributeBuilderTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/config/IdAustriaAuthMessageSourceTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/controller/IdAustriaAuthMetadataControllerFirstTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/controller/IdAustriaAuthSignalControllerTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/task/ReceiveAuthnResponseTaskTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/task/RequestIdAustriaSystemTaskTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/utils/IdAustriaAuthCredentialProviderTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/utils/IdAustriaAuthMetadataProviderFirstTest.java # modules/authmodule_id-austria/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/utils/IdAustriaAuthMetadataProviderSecondTest.java # modules/authmodule_id-austria/src/test/resources/config/junit.jks # modules/authmodule_id-austria/src/test/resources/config/junit_config_1.properties # modules/authmodule_id-austria/src/test/resources/config/junit_test.jks # modules/authmodule_id-austria/src/test/resources/config/junit_test_no_trust_certs.jks # modules/authmodule_id-austria/src/test/resources/config/pvp.jks # modules/authmodule_id-austria/src/test/resources/config/pvp.p12 # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_bpk_without_prefix.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_minimum.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_with_eid_sector_attr.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_with_mandate_jur.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_with_mandate_nat.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_EID_wrong_data.xml # modules/authmodule_id-austria/src/test/resources/data/Response_with_wrong_destination_endpoint.xml # modules/authmodule_id-austria/src/test/resources/data/Response_without_sig_classpath_entityid.xml # modules/authmodule_id-austria/src/test/resources/data/Response_without_sig_with_error.xml # modules/authmodule_id-austria/src/test/resources/data/Response_without_sig_with_error_empty_subcode.xml # modules/authmodule_id-austria/src/test/resources/data/Response_without_sig_with_error_userstop.xml # modules/authmodule_id-austria/src/test/resources/data/Response_without_sig_with_error_without_subcode.xml # modules/authmodule_id-austria/src/test/resources/data/eidas_node_siging.crt # modules/authmodule_id-austria/src/test/resources/data/idp_metadata_classpath_entity.xml # modules/authmodule_id-austria/src/test/resources/data/idp_metadata_no_sig.xml # modules/authmodule_id-austria/src/test/resources/data/idp_metadata_no_sig2.xml # modules/authmodule_id-austria/src/test/resources/data/idp_metadata_sig_notvalid.xml # modules/authmodule_id-austria/src/test/resources/data/idp_metadata_sig_valid_wrong_alg.xml # modules/authmodule_id-austria/src/test/resources/data/junit_keystore_metadata.crt # modules/authmodule_id-austria/src/test/resources/data/junit_keystore_signing.crt # modules/authmodule_id-austria/src/test/resources/data/moa_sig_signing.crt # modules/authmodule_id-austria/src/test/resources/data/pvp_postbinding_template.html # modules/authmodule_id-austria/src/test/resources/data/sp_metadata_junit.xml # modules/authmodule_id-austria/src/test/resources/spring/SpringTest-context_basic_mapConfig.xml # modules/authmodule_id-austria/src/test/resources/spring/SpringTest-context_basic_test.xml # modules/authmodule_id-austria/src/test/resources/spring/SpringTest-context_lazy.xml # modules/eidas_proxy-sevice/checks/spotbugs-exclude.xml # modules/eidas_proxy-sevice/pom.xml # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/EidasProxyMessageSource.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceConstants.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/exception/EidasProxyServiceException.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServicePendingRequest.java # modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/utils/EidasProxyServiceUtils.java # modules/eidas_proxy-sevice/src/main/resources/META-INF/services/at.gv.egiz.components.spring.api.SpringResourceProvider # modules/eidas_proxy-sevice/src/main/resources/messages/eidasproxy_messages.properties # modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml # modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/EidasProxyMessageSourceTest.java # modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/MsProxyServiceSpringResourceProviderTest.java # modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/EidasProxyServiceControllerTest.java # modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/auth/idaustria/test/protocol/ProxyServiceAuthenticationActionTest.java # modules/eidas_proxy-sevice/src/test/resources/config/additional-attributes.xml # modules/eidas_proxy-sevice/src/test/resources/config/eidas-attributes.xml # modules/eidas_proxy-sevice/src/test/resources/config/junit_config_1.properties # modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_mapConfig.xml # modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
Diffstat (limited to 'core_common_webapp/src/main/java/at/asitplus/eidas/specific/core')
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/SpringContextCloseHandler.java170
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/auth/AuthenticationManager.java60
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/builder/AuthenticationDataBuilder.java123
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/config/StaticResourceConfiguration.java220
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/EidasNodeMetadataHealthIndicator.java69
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/IgniteClusterHealthIndicator.java52
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/interceptor/WebFrontEndSecurityInterceptor.java90
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/RevisionLogger.java110
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/StatisticLogger.java141
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/mapper/LoALevelMapper.java60
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/provider/StatusMessageProvider.java139
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java35
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java180
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java169
-rw-r--r--core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java70
15 files changed, 0 insertions, 1688 deletions
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/SpringContextCloseHandler.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/SpringContextCloseHandler.java
deleted file mode 100644
index 81f23841..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/SpringContextCloseHandler.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package at.asitplus.eidas.specific.core;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.slf4j.Logger;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.event.ContextClosedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
-
-import at.gv.egiz.components.spring.api.IDestroyableObject;
-import eu.eidas.auth.cache.IgniteInstanceInitializerSpecificCommunication;
-
-/**
- * SpringContext CloseHandler.
- *
- * @author tlenz
- *
- */
-
-public class SpringContextCloseHandler
- implements ApplicationListener<ContextClosedEvent>, ApplicationContextAware, BeanPostProcessor {
-
- private static final Logger log =
- org.slf4j.LoggerFactory.getLogger(SpringContextCloseHandler.class);
-
- private ApplicationContext context;
-
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.context.ApplicationListener#onApplicationEvent(org.
- * springframework.context. ApplicationEvent)
- */
- @Override
- @EventListener
- public void onApplicationEvent(final ContextClosedEvent arg0) {
- log.info("MS-specific eIDAS-Node shutdown process started ...");
-
- try {
- log.debug("CleanUp objects with implements the IDestroyable interface ... ");
- final Map<String, IDestroyableObject> objectsToDestroy =
- context.getBeansOfType(IDestroyableObject.class);
- internalIDestroyableObject(objectsToDestroy);
- log.info("Object cleanUp complete");
-
- log.debug("Stopping Spring Thread-Pools ... ");
- // shut-down task schedulers
- final Map<String, ThreadPoolTaskScheduler> schedulers =
- context.getBeansOfType(ThreadPoolTaskScheduler.class);
- internalThreadPoolTaskScheduler(schedulers);
-
- // shut-down task executors
- final Map<String, ThreadPoolTaskExecutor> executers =
- context.getBeansOfType(ThreadPoolTaskExecutor.class);
- internalThreadPoolTaskExecutor(executers);
- log.debug("Spring Thread-Pools stopped");
-
-
- //clean-up eIDAS node
- Map<String, IgniteInstanceInitializerSpecificCommunication> nodeIgnite =
- context.getBeansOfType(IgniteInstanceInitializerSpecificCommunication.class);
- log.info("Find #{} Apache Ignite instances from eIDAS Ref. impl.", nodeIgnite.size());
- for (Entry<String, IgniteInstanceInitializerSpecificCommunication> el : nodeIgnite.entrySet()) {
- if (el.getValue().getInstance() != null) {
- el.getValue().getInstance().close();
- el.getValue().destroyInstance();
- log.debug("Shutdown Apache-Ignite: {}", el.getKey());
-
- }
- }
-
- log.info("MS-specific eIDAS-Node shutdown process finished");
-
- } catch (final Exception e) {
- log.warn("MS-specific eIDAS-Node shutdown process has an error.", e);
-
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#
- * postProcessAfterInitialization(java. lang.Object, java.lang.String)
- */
- @Override
- public Object postProcessAfterInitialization(final Object arg0, final String arg1)
- throws BeansException {
- if (arg0 instanceof ThreadPoolTaskScheduler) {
- ((ThreadPoolTaskScheduler) arg0).setWaitForTasksToCompleteOnShutdown(true);
- }
- if (arg0 instanceof ThreadPoolTaskExecutor) {
- ((ThreadPoolTaskExecutor) arg0).setWaitForTasksToCompleteOnShutdown(true);
- }
- return arg0;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.springframework.beans.factory.config.BeanPostProcessor#
- * postProcessBeforeInitialization(java .lang.Object, java.lang.String)
- */
- @Override
- public Object postProcessBeforeInitialization(final Object arg0, final String arg1)
- throws BeansException {
- return arg0;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.springframework.context.ApplicationContextAware#setApplicationContext(org
- * .springframework. context.ApplicationContext)
- */
- @Override
- public void setApplicationContext(final ApplicationContext arg0) throws BeansException {
- this.context = arg0;
-
- }
-
- private void internalThreadPoolTaskExecutor(final Map<String, ThreadPoolTaskExecutor> executers) {
- for (final ThreadPoolTaskExecutor executor : executers.values()) {
- executor.shutdown();
- log.debug("Executer {} with active {} work has killed", executor.getThreadNamePrefix(),
- executor.getActiveCount());
-
- }
-
- }
-
- // Not required at the moment
- private void internalThreadPoolTaskScheduler(
- final Map<String, ThreadPoolTaskScheduler> schedulers) {
- log.trace("Stopping #{} task-schedulers", schedulers.size());
-
- }
-
- private void internalIDestroyableObject(final Map<String, IDestroyableObject> objectsToDestroy) {
- if (objectsToDestroy != null) {
- final Iterator<Entry<String, IDestroyableObject>> interator =
- objectsToDestroy.entrySet().iterator();
- while (interator.hasNext()) {
- final Entry<String, IDestroyableObject> object = interator.next();
- try {
- object.getValue().fullyDestroy();
- log.debug("Object with ID: {} is destroyed", object.getKey());
-
- } catch (final Exception e) {
- log.warn("Destroing object with ID: {} FAILED!", object.getKey(), null, e);
-
- }
- }
- }
-
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/auth/AuthenticationManager.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/auth/AuthenticationManager.java
deleted file mode 100644
index 6be1f0ba..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/auth/AuthenticationManager.java
+++ /dev/null
@@ -1,60 +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.core.auth;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
-import at.gv.egiz.eaaf.core.api.idp.slo.ISloInformationContainer;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.idp.auth.AbstractAuthenticationManager;
-import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
-
-@Service("AuthenticationManager")
-public class AuthenticationManager extends AbstractAuthenticationManager {
- private static final Logger log = LoggerFactory.getLogger(AuthenticationManager.class);
-
- @Override
- public ISloInformationContainer performSingleLogOut(HttpServletRequest httpReq,
- HttpServletResponse httpResp,
- IRequest pendingReq, String internalSsoId) throws EaafException {
- throw new RuntimeException("Single LogOut is NOT supported by this implementation");
-
- }
-
- @Override
- protected void populateExecutionContext(ExecutionContext executionContext,
- RequestImpl pendingReq, HttpServletRequest httpReq)
- throws EaafException {
- log.trace("No implementation-specific population of execution-context required ... ");
-
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/builder/AuthenticationDataBuilder.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/builder/AuthenticationDataBuilder.java
deleted file mode 100644
index 9580a62f..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/builder/AuthenticationDataBuilder.java
+++ /dev/null
@@ -1,123 +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.core.builder;
-
-import java.util.Date;
-
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions;
-import at.gv.egiz.eaaf.core.api.data.PvpAttributeDefinitions.EidIdentityStatusLevelValues;
-import at.gv.egiz.eaaf.core.api.idp.IAuthData;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.auth.data.IAuthProcessDataContainer;
-import at.gv.egiz.eaaf.core.exceptions.EaafBuilderException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.data.Pair;
-import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData;
-import at.gv.egiz.eaaf.core.impl.idp.EidAuthenticationData;
-import at.gv.egiz.eaaf.core.impl.idp.auth.builder.AbstractAuthenticationDataBuilder;
-import at.gv.egiz.eaaf.core.impl.idp.auth.data.EidAuthProcessDataWrapper;
-import lombok.extern.slf4j.Slf4j;
-
-@Service("AuthenticationDataBuilder")
-@Slf4j
-public class AuthenticationDataBuilder extends AbstractAuthenticationDataBuilder {
-
- @Override
- protected IAuthData buildDeprecatedAuthData(IRequest pendingReq) throws EaafException {
- final EidAuthProcessDataWrapper authProcessData =
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class);
- EidAuthenticationData authData = new EidAuthenticationData();
-
- //set basis infos
- super.generateDeprecatedBasicAuthData(authData, pendingReq, authProcessData);
-
- // set specific informations
- authData.setSsoSessionValidTo(
- new Date(new Date().getTime() + MsEidasNodeConstants.DEFAULT_PVP_ASSERTION_VALIDITY * 60 * 1000));
-
- authData.setEidStatus(authProcessData.isTestIdentity()
- ? EidIdentityStatusLevelValues.TESTIDENTITY : EidIdentityStatusLevelValues.IDENTITY);
-
- return authData;
-
- }
-
- @Override
- protected void buildServiceSpecificAuthenticationData(IAuthData authData, IRequest pendingReq)
- throws EaafException {
- if (authData instanceof EidAuthenticationData) {
- ((EidAuthenticationData)authData).setGenericData(
- ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_NAME,
- pendingReq.getUniquePiiTransactionIdentifier());
- log.trace("Inject piiTransactionId: {} into AuthData", pendingReq.getUniquePiiTransactionIdentifier());
-
- // set specific informations
- ((EidAuthenticationData)authData).setSsoSessionValidTo(
- new Date(new Date().getTime() + MsEidasNodeConstants.DEFAULT_PVP_ASSERTION_VALIDITY * 60 * 1000));
-
- //set E-ID status-level
- final EidAuthProcessDataWrapper authProcessData =
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class);
- ((EidAuthenticationData)authData).setEidStatus(authProcessData.isTestIdentity()
- ? EidIdentityStatusLevelValues.TESTIDENTITY : EidIdentityStatusLevelValues.IDENTITY);
-
- } else {
- throw new RuntimeException("Can not inject PiiTransactionId because AuthData is of unknown type: "
- + authData.getClass().getName());
-
- }
-
- }
-
- @Override
- protected IAuthData getAuthDataInstance(IRequest arg0) throws EaafException {
- return new EidAuthenticationData();
-
- }
-
- @Override
- protected Pair<String, String> buildOAspecificbPK(IRequest pendingReq, AuthenticationData authData)
- throws EaafBuilderException {
- return super.buildOAspecificbPK(pendingReq, authData);
-
- }
-
- @Override
- protected Pair<String, String> getEncryptedBpkFromPvpAttribute(IAuthProcessDataContainer arg0,
- AuthenticationData arg1, ISpConfiguration arg2) throws EaafBuilderException {
- return null;
-
- }
-
- @Override
- protected Pair<String, String> getbaseIdFromSzr(AuthenticationData arg0, String arg1, String arg2) {
- return null;
-
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/config/StaticResourceConfiguration.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/config/StaticResourceConfiguration.java
deleted file mode 100644
index 06377c3f..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/config/StaticResourceConfiguration.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 2019 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.core.config;
-
-import java.net.MalformedURLException;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.support.ReloadableResourceBundleMessageSource;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.i18n.CookieLocaleResolver;
-import org.thymeleaf.templateresolver.FileTemplateResolver;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.api.logging.IMessageSourceLocation;
-import at.gv.egiz.eaaf.core.impl.utils.FileUtils;
-
-/**
- * Spring configurator for Web resources.
- *
- * @author tlenz
- *
- */
-@Configuration
-public class StaticResourceConfiguration implements WebMvcConfigurer {
- private static final Logger log = LoggerFactory.getLogger(StaticResourceConfiguration.class);
- private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
- "/"
- };
-
- private static final String DEFAULT_MESSAGE_SOURCE = "classpath:properties/status_messages";
-
- @Autowired
- private IConfiguration basicConfig;
-
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- final String staticResources = basicConfig.getBasicConfiguration(
- MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_STATIC_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- String absPath = FileUtils.makeAbsoluteUrl(staticResources, basicConfig
- .getConfigurationRootDirectory());
- if (!absPath.endsWith("/")) {
- absPath += "/";
- }
-
- registry.addResourceHandler("/static/**").addResourceLocations(absPath);
- log.info("Add Ressourcefolder: " + absPath + " for static Web content");
-
- } else {
- log.debug("No Ressourcefolder for static Web content");
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for static Web content", e);
-
- }
-
- registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
-
- }
-
- /**
- * Get a message source with only internal message properties.
- *
- * @param ressourceLocations List of source-locations
- * @return
- */
- @Bean
- public ReloadableResourceBundleMessageSource internalMessageSource(
- @Autowired(required = false) final List<IMessageSourceLocation> ressourceLocations) {
- final ReloadableResourceBundleMessageSource messageSource =
- new ReloadableResourceBundleMessageSource();
-
- // add default message source
- messageSource.setBasename(DEFAULT_MESSAGE_SOURCE);
-
- if (ressourceLocations != null) {
- // load more message sources
- for (final IMessageSourceLocation el : ressourceLocations) {
- if (el.getMessageSourceLocation() != null) {
- for (final String source : el.getMessageSourceLocation()) {
- messageSource.addBasenames(source);
- log.debug("Add additional messageSources: {}", el.getMessageSourceLocation().toArray());
-
- }
- }
- }
- }
-
- messageSource.setDefaultEncoding("UTF-8");
- return messageSource;
-
- }
-
- /**
- * Get full message source with internal and external message-properties files.
- *
- * @param ressourceLocations List of source-locations
- * @return
- */
- @Bean
- public ReloadableResourceBundleMessageSource messageSource(
- @Autowired(required = false) final List<IMessageSourceLocation> ressourceLocations) {
- final ReloadableResourceBundleMessageSource messageSource =
- new ReloadableResourceBundleMessageSource();
- messageSource.setDefaultEncoding("UTF-8");
- messageSource.setParentMessageSource(internalMessageSource(ressourceLocations));
-
- final String staticResources = basicConfig
- .getBasicConfiguration(MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_PROPERTIES_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- final String absPath =
- FileUtils.makeAbsoluteUrl(staticResources, basicConfig.getConfigurationRootDirectory());
- messageSource.setBasename(absPath);
-
- } else {
- log.debug("No Ressourcefolder for dynamic Web content templates");
-
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for dynamic Web content templates", e);
-
- }
-
- return messageSource;
-
- }
-
- /**
- * Get a i18n resolver based on cookies.
- *
- * @return
- */
- @Bean
- public CookieLocaleResolver localeResolver() {
- final CookieLocaleResolver localeResolver = new CookieLocaleResolver();
- localeResolver.setCookieName("currentLanguage");
- localeResolver.setCookieMaxAge(3600);
- return localeResolver;
-
- }
-
- /**
- * Get a Tyhmeleaf Template-Resolver with external configuration path.
- *
- * @return
- */
- @Bean(name = "templateResolver")
- public FileTemplateResolver templateResolver() {
- final String staticResources = basicConfig
- .getBasicConfiguration(MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_TEMPLATES_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- String absPath =
- FileUtils.makeAbsoluteUrl(staticResources, basicConfig.getConfigurationRootDirectory());
- if (!absPath.endsWith("/")) {
- absPath += "/";
-
- }
-
- if (absPath.startsWith("file:")) {
- absPath = absPath.substring("file:".length());
-
- }
-
- final FileTemplateResolver viewResolver = new FileTemplateResolver();
- viewResolver.setPrefix(absPath);
- viewResolver.setSuffix(".html");
- viewResolver.setTemplateMode("HTML");
- viewResolver.setCacheable(false);
-
- log.info("Add Ressourcefolder: {} for dynamic Web content templates", absPath);
- return viewResolver;
-
- } else {
- log.debug("No Ressourcefolder for dynamic Web content templates");
-
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for dynamic Web content templates", e);
-
- }
-
- throw new RuntimeException("Can NOT initialize HTML template resolver");
-
- }
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/EidasNodeMetadataHealthIndicator.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/EidasNodeMetadataHealthIndicator.java
deleted file mode 100644
index 754fe9ab..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/EidasNodeMetadataHealthIndicator.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package at.asitplus.eidas.specific.core.health;
-
-import java.io.ByteArrayInputStream;
-
-import javax.xml.transform.TransformerFactoryConfigurationError;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.http.StatusLine;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.entity.ContentType;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.impl.data.Triple;
-import at.gv.egiz.eaaf.core.impl.http.HttpUtils;
-import at.gv.egiz.eaaf.core.impl.http.IHttpClientFactory;
-import at.gv.egiz.eaaf.core.impl.utils.DomUtils;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-public class EidasNodeMetadataHealthIndicator implements HealthIndicator {
-
- @Autowired IConfiguration config;
- @Autowired IHttpClientFactory httpClientFactory;
-
- @Override
- public Health health() {
- try {
- final String urlString = config.getBasicConfiguration(
- MsEidasNodeConstants.PROP_CONFIG_MONITORING_EIDASNODE_METADATAURL);
- if (StringUtils.isEmpty(urlString)) {
- log.trace("No eIDASNode metadata URL. Skipping test ... ");
- return Health.unknown().build();
-
- }
-
- // create HTTP client
- CloseableHttpClient httpClient = httpClientFactory.getHttpClient();
- URIBuilder uriBuilder = new URIBuilder(urlString);
- HttpUriRequest request = new HttpGet(uriBuilder.build());
-
- final Triple<StatusLine, ByteArrayInputStream, ContentType> respCode = httpClient.execute(request,
- HttpUtils.bodyStatusCodeResponseHandler());
- if (respCode.getFirst().getStatusCode() != 200) {
- log.warn("Monitoring: Get http StatusCode: {} from eIDAS-Node Metadata endpoint",
- respCode.getFirst().getStatusCode());
- return Health.down().withDetail("http StatusCode", respCode.getFirst().getStatusCode()).build();
-
- }
-
- // parse metadata
- DomUtils.parseXmlNonValidating(respCode.getSecond());
-
- return Health.up().build();
-
- } catch (Exception | TransformerFactoryConfigurationError e) {
- log.warn("Monitoring: Can not read SAML2 metadata from eIDAS-Node", e);
- return Health.down().down(e).build();
-
- }
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/IgniteClusterHealthIndicator.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/IgniteClusterHealthIndicator.java
deleted file mode 100644
index 651f9125..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/health/IgniteClusterHealthIndicator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package at.asitplus.eidas.specific.core.health;
-
-import org.apache.ignite.Ignite;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
-
-import eu.eidas.auth.cache.IgniteInstanceInitializerSpecificCommunication;
-import lombok.Setter;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * HealthCheck that validate Nodes in Apache-Ignite Cluster.
- *
- * @author tlenz
- *
- */
-@Slf4j
-public class IgniteClusterHealthIndicator implements HealthIndicator {
-
- @Setter
- protected IgniteInstanceInitializerSpecificCommunication igniteInstanceInitializerSpecificCommunication;
-
- @Override
- public Health health() {
- final Ignite instance = igniteInstanceInitializerSpecificCommunication.getInstance();
-
- // check if Apache Ignite cluster is active
- if (!instance.cluster().active()) {
- return Health.outOfService().build();
-
- }
-
- final Health.Builder healthBuilder;
- // Status UP requires more than 1 node because MS-Connector and eIDAS-Node operations as
- // micro-services
- if (instance.cluster().nodes().size() > 1) {
- healthBuilder = Health.up();
-
- } else {
- // Something looks wrong if only a single node was found because MS-Connector and eIDAS-Node
- // operations as micro-services
- healthBuilder = Health.outOfService();
-
- }
-
- healthBuilder.withDetail("#Nodes", instance.cluster().nodes().size());
- log.trace("Ignite state. #Nodes: {}", instance.cluster().nodes().size());
- return healthBuilder.build();
-
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/interceptor/WebFrontEndSecurityInterceptor.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/interceptor/WebFrontEndSecurityInterceptor.java
deleted file mode 100644
index f665be51..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/interceptor/WebFrontEndSecurityInterceptor.java
+++ /dev/null
@@ -1,90 +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.core.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.ModelAndView;
-
-/**
- * Spring interceptor to inject securtiy headers into http response.
- *
- * @author tlenz
- *
- */
-public class WebFrontEndSecurityInterceptor implements HandlerInterceptor {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.springframework.web.servlet.HandlerInterceptor#preHandle(javax.servlet.
- * http.HttpServletRequest, javax.servlet.http.HttpServletResponse,
- * java.lang.Object)
- */
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
- throws Exception {
-
- // set security headers
- response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");
- response.setHeader("Pragma", "no-cache");
- response.setHeader("Cache-control", "no-store, no-cache, must-revalidate");
-
- return true;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.springframework.web.servlet.HandlerInterceptor#postHandle(javax.servlet.
- * http.HttpServletRequest, javax.servlet.http.HttpServletResponse,
- * java.lang.Object, org.springframework.web.servlet.ModelAndView)
- */
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.springframework.web.servlet.HandlerInterceptor#afterCompletion(javax.
- * servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse,
- * java.lang.Object, java.lang.Exception)
- */
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
- Exception ex)
- throws Exception {
-
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/RevisionLogger.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/RevisionLogger.java
deleted file mode 100644
index 03a56976..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/RevisionLogger.java
+++ /dev/null
@@ -1,110 +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.core.logger;
-
-import java.util.Date;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.gv.egiz.components.eventlog.api.Event;
-import at.gv.egiz.components.eventlog.api.EventConstants;
-import at.gv.egiz.components.eventlog.api.EventLogFactory;
-import at.gv.egiz.components.eventlog.api.EventLoggingException;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger;
-
-public class RevisionLogger extends EventLogFactory implements IRevisionLogger {
- private static final Logger log = LoggerFactory.getLogger(RevisionLogger.class);
-
- @Autowired
- private IConfiguration basicConfig;
-
- @Override
- public void logEvent(ISpConfiguration oaConfig, int eventCode, String message) {
- logEvent(createNewEvent(new Date().getTime(), eventCode, message));
-
- }
-
- @Override
- public void logEvent(IRequest pendingRequest, int eventCode) {
- logEvent(createNewEvent(new Date().getTime(), eventCode,
- pendingRequest.getUniqueSessionIdentifier(), pendingRequest.getUniqueTransactionIdentifier()));
-
- }
-
- @Override
- public void logEvent(IRequest pendingRequest, int eventCode, String message) {
- logEvent(createNewEvent(new Date().getTime(), eventCode, message,
- pendingRequest.getUniqueSessionIdentifier(), pendingRequest.getUniqueTransactionIdentifier()));
-
- }
-
- @Override
- public void logEvent(int eventCode, String message) {
- logEvent(createNewEvent(new Date().getTime(), eventCode, message));
-
- }
-
- @Override
- public void logEvent(String sessionID, String transactionID, int eventCode, String message) {
- logEvent(createNewEvent(new Date().getTime(), eventCode, message, sessionID, transactionID));
-
- }
-
- @Override
- public void logEvent(String sessionID, String transactionID, int eventCode) {
- logEvent(createNewEvent(new Date().getTime(), eventCode, sessionID, transactionID));
-
- }
-
- private void logEvent(Event event) {
- try {
- if (event.getEventCode() >= 1100) {
- if (event.getEventCode() == EventConstants.TRANSACTION_IP
- && !basicConfig.getBasicConfigurationBoolean(
- MsEidasNodeConstants.PROP_CONFIG_REVISIONLOG_LOG_IP_ADDRESS_OF_USER, true)) {
- log.trace("Ignore Event: " + event.getEventCode() + " because IP adresse logging prohibited");
- return;
-
- }
-
- getEventLog().logEvent(event);
-
- } else {
- log.trace("Ignore Event: " + event.getEventCode()
- + " because session functionallity is not implemented");
- }
-
- } catch (final EventLoggingException e) {
- log.warn("Event logging FAILED! Reason: " + e.getMessage());
-
- }
-
- }
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/StatisticLogger.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/StatisticLogger.java
deleted file mode 100644
index bdaf83f6..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/logger/StatisticLogger.java
+++ /dev/null
@@ -1,141 +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.core.logger;
-
-import org.apache.commons.lang3.StringUtils;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.idp.IAuthData;
-import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-
-public class StatisticLogger implements IStatisticLogger {
-
- private static final Logger log = LoggerFactory.getLogger(StatisticLogger.class);
-
- private static final String DATEFORMATER = "yyyy.MM.dd-HH:mm:ss+z";
- private static final String STATUS_SUCCESS = "success";
- private static final String STATUS_ERROR = "error";
-
- @Override
- public void logSuccessOperation(IRequest protocolRequest, IAuthData authData, boolean isSsoSession) {
- log.info(buildLogMessage(
- protocolRequest.getUniqueTransactionIdentifier(),
- protocolRequest.getSpEntityId(),
- protocolRequest.getRawData(MsEidasNodeConstants.DATA_REQUESTERID),
- protocolRequest.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier(),
- authData.getCiticenCountryCode(),
- STATUS_SUCCESS,
- StringUtils.EMPTY,
- StringUtils.EMPTY));
-
- }
-
- @Override
- public void logErrorOperation(Throwable throwable) {
- String errorId = "TODO";
- if (throwable instanceof EaafException) {
- errorId = ((EaafException) throwable).getErrorId();
- }
-
- log.info(buildLogMessage(
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- STATUS_ERROR,
- errorId,
- throwable.getMessage()));
-
- }
-
- @Override
- public void logErrorOperation(Throwable throwable, IRequest errorRequest) {
- String errorId = "TODO";
- if (throwable instanceof EaafException) {
- errorId = ((EaafException) throwable).getErrorId();
- }
-
- if (errorRequest != null) {
- log.info(buildLogMessage(
- errorRequest.getUniqueTransactionIdentifier(),
- errorRequest.getSpEntityId(),
- errorRequest.getRawData(MsEidasNodeConstants.DATA_REQUESTERID),
- errorRequest.getServiceProviderConfiguration().getAreaSpecificTargetIdentifier(),
- StringUtils.EMPTY,
- STATUS_ERROR,
- errorId,
- throwable.getMessage()));
- } else {
- log.info(buildLogMessage(
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- StringUtils.EMPTY,
- STATUS_ERROR,
- errorId,
- throwable.getMessage()));
- }
-
- }
-
- @Override
- public void internalTesting() throws Exception {
- log.trace("Not implemented for a File-based logger");
-
- }
-
- private String buildLogMessage(String transId, String entityId, Object requesterId, String target,
- String cc,
- String status, String errorCode, String errorMsg) {
- String logMsg = StringUtils.EMPTY;
-
- // data,tId,MOAID-Id,SP-Id,bPKTarget,CC,status,error-code,error-msg
-
- logMsg += DateTime.now().toString(DATEFORMATER) + ",";
- logMsg += transId + ",";
- logMsg += entityId + ",";
-
- if (requesterId instanceof String && StringUtils.isNotEmpty((String) requesterId)) {
- logMsg += (String) requesterId + ",";
- } else {
- logMsg += StringUtils.EMPTY + ",";
- }
-
- logMsg += target + ",";
- logMsg += cc + ",";
-
- logMsg += status + ",";
- logMsg += errorCode + ",";
- logMsg += errorMsg;
-
- return logMsg;
- }
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/mapper/LoALevelMapper.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/mapper/LoALevelMapper.java
deleted file mode 100644
index e3ab5d45..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/mapper/LoALevelMapper.java
+++ /dev/null
@@ -1,60 +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.core.mapper;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import at.gv.egiz.eaaf.core.api.data.EaafConstants;
-import at.gv.egiz.eaaf.core.api.data.ILoALevelMapper;
-
-@Service("LoALevelMapper")
-public class LoALevelMapper implements ILoALevelMapper {
- private static final Logger log = LoggerFactory.getLogger(LoALevelMapper.class);
-
- @Override
- public String mapToSecClass(String loa) {
- log.info("Mapping to PVP SecClass is NOT supported");
- return null;
- }
-
- @Override
- public String mapToEidasLoa(String loa) {
- if (loa.startsWith(EaafConstants.EIDAS_LOA_PREFIX)) {
- return loa;
- } else {
- log.info("Can NOT map '" + loa + "' to eIDAS LoA");
- }
-
- return null;
-
- }
-
- @Override
- public String mapEidasQaaToStorkQaa(String eidasqaaLevel) {
- return null;
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/provider/StatusMessageProvider.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/provider/StatusMessageProvider.java
deleted file mode 100644
index e86d50d3..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/provider/StatusMessageProvider.java
+++ /dev/null
@@ -1,139 +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.core.provider;
-
-import java.text.MessageFormat;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import at.gv.egiz.eaaf.core.api.IStatusMessenger;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-
-@Service("StatusMessageProvider")
-public class StatusMessageProvider implements IStatusMessenger {
- private static final Logger log = LoggerFactory.getLogger(StatusMessageProvider.class);
-
- private static final String ERROR_MESSAGES_UNAVAILABLE =
- "Error messages can NOT be load from application. Only errorCode: {0} is availabe";
- private static final String ERROR_NO_MESSAGE = "No errormesseage for error with number.={0}";
-
- private static final String ERROR_EXTERNALERROR_CODES_UNAVAILABLE =
- "External error-codes can NOT be load from application. Only internal errorCode: {0} is availabe";
- private static final String ERROR_NO_EXTERNALERROR_CODE =
- "No external error for internal error with number.={0}";
-
- // internal messanges
- private static final String DEFAULT_MESSAGE_RESOURCES = "properties/status_messages_en";
- private static final Locale DEFAULT_MESSAGE_LOCALES = new Locale("en", "GB");
- private ResourceBundle messages;
-
- // external error codes
- private static final String DEFAULT_EXTERNALERROR_RESOURCES = "properties/external_statuscodes_map";
- private static final Locale DEFAULT_EXTERNALERROR_LOCALES = new Locale("en", "GB");
- private ResourceBundle externalError = null;
-
- @Override
- public String getMessageWithoutDefault(String messageId, Object[] parameters) {
- // initialize messages
- if (messages == null) {
- this.messages = ResourceBundle.getBundle(
- DEFAULT_MESSAGE_RESOURCES,
- DEFAULT_MESSAGE_LOCALES);
-
- }
-
- // create the message
- if (messages == null) {
- return MessageFormat.format(ERROR_MESSAGES_UNAVAILABLE, new Object[] { messageId });
-
- } else {
- final String rawMessage = messages.getString(messageId);
- return MessageFormat.format(rawMessage, parameters);
-
- }
- }
-
- @Override
- public String getMessage(String messageId, Object[] parameters) {
- try {
- return getMessageWithoutDefault(messageId, parameters);
-
- } catch (final MissingResourceException e2) {
- return MessageFormat.format(ERROR_NO_MESSAGE, new Object[] { messageId });
-
- }
- }
-
- @Override
- public String getResponseErrorCode(Throwable throwable) {
- String errorCode = IStatusMessenger.CODES_EXTERNAL_ERROR_GENERIC;
- if (throwable instanceof EaafException) {
- errorCode = ((EaafException) throwable).getErrorId();
-
- }
-
- return errorCode;
-
- }
-
- @Override
- public String mapInternalErrorToExternalError(String intErrorCode) {
- // initialize messages
- if (externalError == null) {
- this.externalError = ResourceBundle.getBundle(
- DEFAULT_EXTERNALERROR_RESOURCES,
- DEFAULT_EXTERNALERROR_LOCALES);
-
- }
-
- // create the message
- if (externalError == null) {
- log.warn(MessageFormat.format(ERROR_EXTERNALERROR_CODES_UNAVAILABLE, new Object[] { intErrorCode }));
- return IStatusMessenger.CODES_EXTERNAL_ERROR_GENERIC;
-
- } else {
- try {
- if (StringUtils.isNotEmpty(intErrorCode)) {
- return externalError.getString(intErrorCode);
-
- } else {
- return IStatusMessenger.CODES_EXTERNAL_ERROR_GENERIC;
-
- }
-
- } catch (final MissingResourceException e2) {
- log.info(MessageFormat.format(ERROR_NO_EXTERNALERROR_CODE, new Object[] { intErrorCode }));
- return IStatusMessenger.CODES_EXTERNAL_ERROR_GENERIC;
-
- }
- }
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java
deleted file mode 100644
index 0eeb35d9..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java
+++ /dev/null
@@ -1,35 +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.core.storage;
-
-import eu.eidas.auth.commons.cache.ConcurrentCacheService;
-import eu.eidas.auth.commons.tx.AbstractCache;
-
-public class CacheWithEidasBackend extends AbstractCache<String, TransactionStoreElement> {
-
- protected CacheWithEidasBackend(ConcurrentCacheService concurrentMapService) {
- super(concurrentMapService);
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java
deleted file mode 100644
index 9b1c8eae..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.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.core.storage;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.boot.actuate.health.HealthIndicator;
-
-import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
-import at.gv.egiz.eaaf.core.impl.utils.Random;
-
-public class EidasCacheTransactionStoreDecorator implements ITransactionStorage, HealthIndicator {
- private static final Logger log = LoggerFactory.getLogger(EidasCacheTransactionStoreDecorator.class);
-
- @Autowired(required = true)
- private CacheWithEidasBackend storage;
-
- @Override
- public Health health() {
- try {
- final String key = Random.nextHexRandom16();
- final String value = Random.nextHexRandom16();
-
- this.put(key, value, -1);
- final String result = this.get(key, String.class);
- this.remove(key);
-
- if (result != null && result.equals(value)) {
- return Health.up().build();
-
- } else {
- log.warn("Montioring: TestValue: " + value + " does NOT match in Storage test");
- return Health.down().build();
-
- }
-
- } catch (final EaafException e) {
- log.warn("Montioring: Can not read/write to storage.", e);
- return Health.down().down(e).build();
-
- }
- }
-
- @Override
- public void changeKey(String oldKey, String newKey, Object value) throws EaafException {
- if (containsKey(oldKey)) {
- final TransactionStoreElement el = storage.get(oldKey);
- el.setKey(newKey);
- el.setData(value);
- storage.put(newKey, el);
- boolean delResult = storage.remove(oldKey);
- log.trace("Object: {} removed from cache: {}", oldKey, delResult);
-
- } else {
- throw new EaafStorageException("No element in TransactionStorage with key: " + oldKey);
- }
-
- }
-
- @Override
- public List<String> clean(Date now, long dataTimeOut) {
- log.info("Clean is NOT implemented, because its not needed");
- return Arrays.asList();
-
- }
-
- @Override
- public boolean containsKey(String key) {
- return storage.containsKey(key);
-
- }
-
- @Override
- public Object get(String key) throws EaafException {
- if (key != null && containsKey(key)) {
- final TransactionStoreElement element = storage.get(key);
- return element.getData();
-
- } else {
- return null;
- }
- }
-
- @Override
- public <T> T get(String key, Class<T> type) throws EaafException {
- return get(key, type, -1);
-
- }
-
- @Override
- public <T> T get(String key, Class<T> type, long dataTimeOut) throws EaafException {
- if (key != null && containsKey(key)) {
- final TransactionStoreElement value = storage.get(key);
-
- if (dataTimeOut > -1) {
- final long now = new Date().getTime();
- if (now - value.getCreated().getTime() > dataTimeOut) {
- log.info("Transaction-Data with key: " + key + " is out of time.");
- throw new EaafStorageException("Transaction-Data with key: " + key + " is out of time.");
-
- }
- }
-
- if (type.isAssignableFrom(value.getData().getClass())) {
- return (T) value.getData();
-
- } else {
- log.warn("Can NOT cast '" + value.getClass() + "' to '" + type + "'");
- }
-
- }
-
- return null;
- }
-
- @Override
- public Object getRaw(String key) throws EaafException {
- return storage.get(key);
-
- }
-
- @Override
- public void put(String key, Object value, int dataTimeOut) throws EaafException {
- final TransactionStoreElement element = new TransactionStoreElement();
- element.setKey(key);
- element.setData(value);
- storage.put(key, element);
-
- }
-
- @Override
- public void putRaw(String key, Object value) throws EaafException {
- if (value instanceof TransactionStoreElement) {
- storage.put(((TransactionStoreElement) value).getKey(), (TransactionStoreElement) value);
- } else {
- log.info(value.getClass().getName() + " is NOT a RAW element of " + ITransactionStorage.class
- .getName());
- }
-
- }
-
- @Override
- public void remove(String key) {
- if (containsKey(key)) {
- log.debug("Remove element with key: " + key + " from " + ITransactionStorage.class.getName());
- boolean delResult = storage.remove(key);
- log.trace("Object: {} removed from cache: {}", key, delResult);
-
- }
- }
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java
deleted file mode 100644
index a3a8af0f..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java
+++ /dev/null
@@ -1,169 +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.core.storage;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
-
-public class SimpleInMemoryTransactionStorage implements ITransactionStorage {
- private static final Logger log = LoggerFactory.getLogger(SimpleInMemoryTransactionStorage.class);
-
- private final Map<String, TransactionStoreElement> storage =
- new ConcurrentHashMap<>();
-
- @Override
- public void changeKey(String oldKey, String newKey, Object value) throws EaafException {
- if (containsKey(oldKey)) {
- final TransactionStoreElement el = storage.get(oldKey);
- el.setKey(newKey);
- storage.put(newKey, el);
- storage.remove(oldKey);
-
- } else {
- throw new EaafStorageException("No element in TransactionStorage with key: " + oldKey);
- }
-
- }
-
- @Override
- public List<String> clean(Date now, long dataTimeOut) {
- final List<String> result = new ArrayList<>();
- final Iterator<Entry<String, TransactionStoreElement>> iterator = storage.entrySet().iterator();
- while (iterator.hasNext()) {
- final Entry<String, TransactionStoreElement> key = iterator.next();
- synchronized (storage) {
- if (storage.containsKey(key.getKey())) {
- final TransactionStoreElement element = key.getValue();
- if (now.getTime() - element.getCreated().getTime() > dataTimeOut) {
- result.add(key.getKey());
- }
- }
- }
- }
-
- return result;
-
- }
-
- @Override
- public boolean containsKey(String key) {
- if (key != null) {
- return storage.containsKey(key);
- } else {
- return false;
- }
-
- }
-
- @Override
- public Object get(String key) throws EaafException {
- if (key != null && containsKey(key)) {
- final TransactionStoreElement element = storage.get(key);
- return element.getData();
-
- } else {
- return null;
- }
- }
-
- @Override
- public <T> T get(String key, Class<T> type) throws EaafException {
- return get(key, type, -1);
-
- }
-
- @Override
- public <T> T get(String key, Class<T> type, long dataTimeOut) throws EaafException {
- if (key != null && containsKey(key)) {
- final TransactionStoreElement value = storage.get(key);
-
- if (dataTimeOut > -1) {
- final long now = new Date().getTime();
- if (now - value.getCreated().getTime() > dataTimeOut) {
- log.info("Transaction-Data with key: " + key + " is out of time.");
- throw new EaafStorageException("Transaction-Data with key: " + key + " is out of time.");
-
- }
- }
-
- if (type.isAssignableFrom(value.getData().getClass())) {
- return (T) value.getData();
-
- } else {
- log.warn("Can NOT cast '" + value.getClass() + "' to '" + type + "'");
- }
-
- }
-
- return null;
- }
-
- @Override
- public Object getRaw(String key) throws EaafException {
- return storage.get(key);
-
- }
-
- @Override
- public void put(String key, Object value, int dataTimeOut) throws EaafException {
- final TransactionStoreElement element = new TransactionStoreElement();
- element.setKey(key);
- element.setData(value);
- storage.put(key, element);
-
- }
-
- @Override
- public void putRaw(String key, Object value) throws EaafException {
- if (value instanceof TransactionStoreElement) {
- storage.put(((TransactionStoreElement) value).getKey(), (TransactionStoreElement) value);
- } else {
- log.info(value.getClass().getName() + " is NOT a RAW element of " + ITransactionStorage.class
- .getName());
- }
-
- }
-
- @Override
- public void remove(String key) {
- if (containsKey(key)) {
- log.debug("Remove element with key: " + key + " from " + ITransactionStorage.class.getName());
- storage.remove(key);
-
- }
- }
-
-}
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java
deleted file mode 100644
index 48668d4b..00000000
--- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java
+++ /dev/null
@@ -1,70 +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.core.storage;
-
-import java.io.Serializable;
-import java.util.Date;
-
-public class TransactionStoreElement implements Serializable {
-
- private static final long serialVersionUID = 1L;
- private String key = null;
- private Object data = null;
- private Date created;
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-
- public Object getData() {
- return data;
- }
-
- public void setData(Object data) {
- this.data = data;
- }
-
- public Date getCreated() {
- return copyOrNull(created);
- }
-
- public void setCreated(Date created) {
- this.created = copyOrNull(created);
- }
-
- private Date copyOrNull(Date in) {
- if (in != null) {
- return new Date(in.getTime());
-
- }
-
- return null;
-
- }
-
-}