aboutsummaryrefslogtreecommitdiff
path: root/connector/src
diff options
context:
space:
mode:
Diffstat (limited to 'connector/src')
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/MsSpecificEidasNodeSpringResourceProvider.java10
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/SpringContextCloseHandler.java170
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/AuthBlockAttributeBuilder.java4
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/EidasBindAttributeBuilder.java13
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/auth/AuthenticationManager.java60
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/builder/AuthenticationDataBuilder.java123
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpEndPointConfiguration.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpMetadataConfiguration.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/controller/ProcessEngineSignalController.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/controller/Pvp2SProfileEndpoint.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/health/EidasNodeMetadataHealthIndicator.java69
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/health/IgniteClusterHealthIndicator.java52
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/interceptor/WebFrontEndSecurityInterceptor.java90
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/logger/RevisionLogger.java110
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/logger/StatisticLogger.java141
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/mapper/LoALevelMapper.java60
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/processes/CountrySelectionProcessImpl.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/EvaluateCountrySelectionTask.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/GenerateCountrySelectionFrameTask.java6
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpEndPointCredentialProvider.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpMetadataProvider.java2
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/provider/StatusMessageProvider.java136
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWithEidasBackend.java35
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/storage/EidasCacheTransactionStoreDecorator.java180
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/storage/SimpleInMemoryTransactionStorage.java169
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/storage/TransactionStoreElement.java70
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/verification/AuthnRequestValidator.java4
-rw-r--r--connector/src/main/resources/applicationContext.xml19
-rw-r--r--connector/src/main/resources/properties/messages.properties5
-rw-r--r--connector/src/main/resources/properties/messages_de.properties5
-rw-r--r--connector/src/main/resources/specific_eIDAS_connector.beans.xml46
-rw-r--r--connector/src/main/resources/specific_eIDAS_connector.storage.beans.xml52
-rw-r--r--connector/src/main/webapp/img/countries/Lichtenstein.pngbin0 -> 13536 bytes
-rw-r--r--connector/src/main/webapp/img/countries/Lichtenstein_gray.pngbin0 -> 13536 bytes
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/AuthBlockAttributeBuilderTest.java8
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/EidasBindAttributeBuilderTest.java9
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigurationTest.java4
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java2
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java70
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java102
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/saml2/Pvp2SProfileEndPointTest.java4
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/EvaluateCountrySelectionTaskTest.java4
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/GenerateCountrySelectionFrameTaskTest.java2
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java368
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java8
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/CountrySelectionProcessImplTest.java2
-rw-r--r--connector/src/test/resources/config/logback_config.xml4
-rw-r--r--connector/src/test/resources/spring/SpringTest-context_basic_test.xml22
-rw-r--r--connector/src/test/resources/spring/SpringTest-context_healthcheck.xml22
-rw-r--r--connector/src/test/resources/spring/SpringTest-context_simple_storage.xml15
-rw-r--r--connector/src/test/resources/spring/SpringTest_connector.beans.xml62
51 files changed, 67 insertions, 2286 deletions
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/MsSpecificEidasNodeSpringResourceProvider.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/MsSpecificEidasNodeSpringResourceProvider.java
index 40ed283b..45e5c7d4 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/MsSpecificEidasNodeSpringResourceProvider.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/MsSpecificEidasNodeSpringResourceProvider.java
@@ -33,14 +33,12 @@ public class MsSpecificEidasNodeSpringResourceProvider implements SpringResource
@Override
public Resource[] getResourcesToLoad() {
final ClassPathResource generic =
- new ClassPathResource("/applicationContext.xml", MsSpecificEidasNodeSpringResourceProvider.class);
-
+ new ClassPathResource("/applicationContext.xml", MsSpecificEidasNodeSpringResourceProvider.class);
final ClassPathResource msEidasNode = new ClassPathResource(
"/specific_eIDAS_connector.beans.xml", MsSpecificEidasNodeSpringResourceProvider.class);
+
+ return new Resource[] { generic, msEidasNode};
- final ClassPathResource msEidasNodeStorage = new ClassPathResource(
- "/specific_eIDAS_connector.storage.beans.xml", MsSpecificEidasNodeSpringResourceProvider.class);
- return new Resource[] { generic, msEidasNode, msEidasNodeStorage };
}
@Override
@@ -50,7 +48,7 @@ public class MsSpecificEidasNodeSpringResourceProvider implements SpringResource
@Override
public String getName() {
- return "MS-specific eIDAS Node SpringResourceProvider";
+ return "MS-specific eIDAS-Connector SpringResourceProvider";
}
}
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/SpringContextCloseHandler.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/SpringContextCloseHandler.java
deleted file mode 100644
index e884b5c6..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/SpringContextCloseHandler.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package at.asitplus.eidas.specific.connector;
-
-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/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/AuthBlockAttributeBuilder.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/AuthBlockAttributeBuilder.java
index 1833f377..17eb0704 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/AuthBlockAttributeBuilder.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/AuthBlockAttributeBuilder.java
@@ -27,7 +27,7 @@ import java.util.Base64;
import org.apache.commons.lang3.StringUtils;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
import at.gv.egiz.eaaf.core.api.idp.IAuthData;
import at.gv.egiz.eaaf.core.api.idp.IPvpAttributeBuilder;
@@ -49,7 +49,7 @@ public class AuthBlockAttributeBuilder implements IPvpAttributeBuilder {
public <ATT> ATT build(final ISpConfiguration oaParam, final IAuthData authData,
final IAttributeGenerator<ATT> g) throws AttributeBuilderException {
- String authBlock = authData.getGenericData(Constants.SZR_AUTHBLOCK, String.class);
+ String authBlock = authData.getGenericData(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, String.class);
if (StringUtils.isNotEmpty(authBlock)) {
return g.buildStringAttribute(EID_AUTHBLOCK_SIGNED_FRIENDLY_NAME, EID_AUTHBLOCK_SIGNED_NAME,
Base64.getEncoder().encodeToString(authBlock.getBytes(StandardCharsets.UTF_8)));
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/EidasBindAttributeBuilder.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/EidasBindAttributeBuilder.java
index a4fe8c6c..18eb74f8 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/EidasBindAttributeBuilder.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/attributes/EidasBindAttributeBuilder.java
@@ -19,7 +19,12 @@
package at.asitplus.eidas.specific.connector.attributes;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import static at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions.EID_EIDBIND_FRIENDLY_NAME;
+import static at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions.EID_EIDBIND_NAME;
+
+import org.apache.commons.lang3.StringUtils;
+
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
import at.gv.egiz.eaaf.core.api.idp.IAuthData;
import at.gv.egiz.eaaf.core.api.idp.IPvpAttributeBuilder;
@@ -27,10 +32,6 @@ import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.PvpMetadata;
-import org.apache.commons.lang3.StringUtils;
-
-import static at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions.EID_EIDBIND_FRIENDLY_NAME;
-import static at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions.EID_EIDBIND_NAME;
@PvpMetadata
public class EidasBindAttributeBuilder implements IPvpAttributeBuilder {
@@ -45,7 +46,7 @@ public class EidasBindAttributeBuilder implements IPvpAttributeBuilder {
public <ATT> ATT build(final ISpConfiguration oaParam, final IAuthData authData,
final IAttributeGenerator<ATT> g) throws AttributeBuilderException {
- String eidasBind = authData.getGenericData(Constants.EIDAS_BIND, String.class);
+ String eidasBind = authData.getGenericData(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, String.class);
if (StringUtils.isNotEmpty(eidasBind)) {
return g.buildStringAttribute(EID_EIDBIND_FRIENDLY_NAME, EID_EIDBIND_NAME, eidasBind);
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/auth/AuthenticationManager.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/auth/AuthenticationManager.java
deleted file mode 100644
index abda468d..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/builder/AuthenticationDataBuilder.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/builder/AuthenticationDataBuilder.java
deleted file mode 100644
index 3a93c1b8..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.builder;
-
-import java.util.Date;
-
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpEndPointConfiguration.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpEndPointConfiguration.java
index d7d88017..c62cbeef 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpEndPointConfiguration.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpEndPointConfiguration.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+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;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpMetadataConfiguration.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpMetadataConfiguration.java
index 0fc061ff..e83fd4cf 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpMetadataConfiguration.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/config/PvpMetadataConfiguration.java
@@ -34,7 +34,7 @@ import org.opensaml.saml.saml2.metadata.RequestedAttribute;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.modules.pvp2.api.IPvp2BasicConfiguration;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/ProcessEngineSignalController.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/ProcessEngineSignalController.java
index 6e2879a8..a7695d1b 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/ProcessEngineSignalController.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/ProcessEngineSignalController.java
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractProcessEngineSignalController;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/Pvp2SProfileEndpoint.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/Pvp2SProfileEndpoint.java
index d2ec5a7c..923864cc 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/Pvp2SProfileEndpoint.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/controller/Pvp2SProfileEndpoint.java
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.modules.pvp2.idp.impl.AbstractPvp2XProtocol;
import at.gv.egiz.eaaf.modules.pvp2.idp.impl.PvpSProfilePendingRequest;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/health/EidasNodeMetadataHealthIndicator.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/health/EidasNodeMetadataHealthIndicator.java
deleted file mode 100644
index f160916c..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/health/EidasNodeMetadataHealthIndicator.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package at.asitplus.eidas.specific.connector.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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/health/IgniteClusterHealthIndicator.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/health/IgniteClusterHealthIndicator.java
deleted file mode 100644
index 10517565..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/health/IgniteClusterHealthIndicator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package at.asitplus.eidas.specific.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/interceptor/WebFrontEndSecurityInterceptor.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/interceptor/WebFrontEndSecurityInterceptor.java
deleted file mode 100644
index d90cd22b..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/logger/RevisionLogger.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/logger/RevisionLogger.java
deleted file mode 100644
index 16385e10..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/logger/StatisticLogger.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/logger/StatisticLogger.java
deleted file mode 100644
index 3483f367..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/mapper/LoALevelMapper.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/mapper/LoALevelMapper.java
deleted file mode 100644
index 564160be..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/CountrySelectionProcessImpl.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/CountrySelectionProcessImpl.java
index 805148f7..2ec86f53 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/CountrySelectionProcessImpl.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/CountrySelectionProcessImpl.java
@@ -25,7 +25,7 @@ package at.asitplus.eidas.specific.connector.processes;
import org.apache.commons.lang3.StringUtils;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.idp.auth.modules.AuthModule;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/EvaluateCountrySelectionTask.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/EvaluateCountrySelectionTask.java
index 727653b3..b2c5c51d 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/EvaluateCountrySelectionTask.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/EvaluateCountrySelectionTask.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/GenerateCountrySelectionFrameTask.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/GenerateCountrySelectionFrameTask.java
index d3b8116a..e87979fb 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/GenerateCountrySelectionFrameTask.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/processes/tasks/GenerateCountrySelectionFrameTask.java
@@ -29,9 +29,9 @@ import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import at.asitplus.eidas.specific.connector.MsConnectorEventCodes;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.connector.gui.StaticGuiBuilderConfiguration;
+import at.asitplus.eidas.specific.core.MsConnectorEventCodes;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.gui.StaticGuiBuilderConfiguration;
import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpEndPointCredentialProvider.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpEndPointCredentialProvider.java
index 3a3e9664..98e88eff 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpEndPointCredentialProvider.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpEndPointCredentialProvider.java
@@ -25,7 +25,7 @@ package at.asitplus.eidas.specific.connector.provider;
import org.springframework.beans.factory.annotation.Autowired;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+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.impl.credential.KeyStoreConfiguration;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpMetadataProvider.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpMetadataProvider.java
index 8dbb74c7..6161c271 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpMetadataProvider.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/PvpMetadataProvider.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/StatusMessageProvider.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/StatusMessageProvider.java
deleted file mode 100644
index eef09b8d..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/provider/StatusMessageProvider.java
+++ /dev/null
@@ -1,136 +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.connector.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.springframework.stereotype.Service;
-
-import at.gv.egiz.eaaf.core.api.IStatusMessenger;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import lombok.extern.slf4j.Slf4j;
-
-@Service("StatusMessageProvider")
-@Slf4j
-public class StatusMessageProvider implements IStatusMessenger {
-
- 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) {
- if (throwable instanceof EaafException) {
- return ((EaafException) throwable).getErrorId();
-
- }
- return IStatusMessenger.CODES_INTERNAL_ERROR_GENERIC;
-
- }
-
- @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/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWithEidasBackend.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWithEidasBackend.java
deleted file mode 100644
index 87ebda92..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/EidasCacheTransactionStoreDecorator.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/EidasCacheTransactionStoreDecorator.java
deleted file mode 100644
index 1ea5a280..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/SimpleInMemoryTransactionStorage.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/SimpleInMemoryTransactionStorage.java
deleted file mode 100644
index 3bda2932..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/TransactionStoreElement.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/TransactionStoreElement.java
deleted file mode 100644
index 4e9e737f..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/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.connector.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;
-
- }
-
-}
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/verification/AuthnRequestValidator.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/verification/AuthnRequestValidator.java
index e4c68004..23702264 100644
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/verification/AuthnRequestValidator.java
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/verification/AuthnRequestValidator.java
@@ -42,8 +42,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions;
diff --git a/connector/src/main/resources/applicationContext.xml b/connector/src/main/resources/applicationContext.xml
index 15ce0a55..ec8e79f4 100644
--- a/connector/src/main/resources/applicationContext.xml
+++ b/connector/src/main/resources/applicationContext.xml
@@ -15,16 +15,10 @@
<context:annotation-config />
<context:component-scan base-package="at.gv.egiz.eaaf.utils.springboot.ajp"/>
-
-<!--
- <context:annotation-config />
- <mvc:annotation-driven />
- <mvc:default-servlet-handler />
--->
<mvc:interceptors>
<bean
- class="at.asitplus.eidas.specific.connector.interceptor.WebFrontEndSecurityInterceptor" />
+ class="at.asitplus.eidas.specific.core.interceptor.WebFrontEndSecurityInterceptor" />
<bean
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
@@ -32,22 +26,17 @@
</mvc:interceptors>
<bean id="springContextClosingHandler"
- class="at.asitplus.eidas.specific.connector.SpringContextCloseHandler" />
-
-<!--
- <context:property-placeholder
- location="${eidas.ms.configuration}" />
- -->
+ class="at.asitplus.eidas.specific.core.SpringContextCloseHandler" />
<beans profile="deprecatedConfig">
<bean id="BasicMSSpecificNodeConfig"
- class="at.asitplus.eidas.specific.connector.config.BasicConfigurationProvider">
+ class="at.asitplus.eidas.specific.core.config.BasicConfigurationProvider">
<constructor-arg value="#{systemProperties['eidas.ms.configuration']}" />
</bean>
</beans>
<beans profile="!deprecatedConfig">
<bean id="springBootMsSpecificNodeConfig"
- class="at.asitplus.eidas.specific.connector.config.SpringBootBasicConfigurationProvider" />
+ class="at.asitplus.eidas.specific.core.config.SpringBootBasicConfigurationProvider" />
</beans>
diff --git a/connector/src/main/resources/properties/messages.properties b/connector/src/main/resources/properties/messages.properties
index 23dd48c3..a2aaf95d 100644
--- a/connector/src/main/resources/properties/messages.properties
+++ b/connector/src/main/resources/properties/messages.properties
@@ -47,6 +47,11 @@ gui.countryselection.country.is=Iceland
gui.countryselection.country.is.logo.alt=Iceland-eID
gui.countryselection.country.it=Italy
gui.countryselection.country.it.logo.alt=Italy-eID
+<<<<<<< HEAD
+gui.countryselection.country.li=Lichtenstein
+gui.countryselection.country.li.logo.alt=Lichtensteinische-eID
+=======
+>>>>>>> 1ad67c91820de1c7f2b2541f8e39752baac197d2
gui.countryselection.country.lt=Lithuania
gui.countryselection.country.lt.logo.alt=Lithuania-eID
gui.countryselection.country.lv=Latvia
diff --git a/connector/src/main/resources/properties/messages_de.properties b/connector/src/main/resources/properties/messages_de.properties
index 26b1b3c6..187b7b37 100644
--- a/connector/src/main/resources/properties/messages_de.properties
+++ b/connector/src/main/resources/properties/messages_de.properties
@@ -48,6 +48,11 @@ gui.countryselection.country.is=Island
gui.countryselection.country.is.logo.alt=Isländische-eID
gui.countryselection.country.it=Italien
gui.countryselection.country.it.logo.alt=Italienische-eID
+<<<<<<< HEAD
+gui.countryselection.country.li=Lichtenstein
+gui.countryselection.country.li.logo.alt=Lichtensteinische-eID
+=======
+>>>>>>> 1ad67c91820de1c7f2b2541f8e39752baac197d2
gui.countryselection.country.lt=Litauen
gui.countryselection.country.lt.logo.alt=Litauische-eID
gui.countryselection.country.lv=Lettland
diff --git a/connector/src/main/resources/specific_eIDAS_connector.beans.xml b/connector/src/main/resources/specific_eIDAS_connector.beans.xml
index a417a0e5..e3db72f8 100644
--- a/connector/src/main/resources/specific_eIDAS_connector.beans.xml
+++ b/connector/src/main/resources/specific_eIDAS_connector.beans.xml
@@ -11,7 +11,8 @@
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
- <import resource="common_gui.beans.xml"/>
+
+ <import resource="specific_eIDAS_core.beans.xml"/>
<bean id="processEngineSignalController"
class="at.asitplus.eidas.specific.connector.controller.ProcessEngineSignalController" />
@@ -21,18 +22,6 @@
<property name="pvpIdpCredentials" ref="PVPEndPointCredentialProvider" />
</bean>
- <bean id="defaultErrorTicketService"
- class="at.gv.egiz.eaaf.core.impl.idp.auth.services.DefaultErrorService"/>
-
- <bean id="eidasNodeMetadata"
- class="at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator" />
-
- <bean id="AuthenticationManager"
- class="at.asitplus.eidas.specific.connector.auth.AuthenticationManager" />
-
- <bean id="AuthenticationDataBuilder"
- class="at.asitplus.eidas.specific.connector.builder.AuthenticationDataBuilder" />
-
<bean id="PVPEndPointConfiguration"
class="at.asitplus.eidas.specific.connector.config.PvpEndPointConfiguration" />
@@ -65,43 +54,12 @@
<property name="metadataProvider" ref="PVPMetadataProvider" />
</bean>
- <bean id="eaafProtocolAuthenticationService"
- class="at.gv.egiz.eaaf.core.impl.idp.auth.services.ProtocolAuthenticationService">
- <property name="guiBuilder" ref="mvcGUIBuilderImpl" />
- </bean>
-
- <bean id="securePendingRequestIdGeneration"
- class="at.gv.egiz.eaaf.core.impl.utils.SecurePendingRequestIdGenerationStrategy" />
-
<bean id="PVPMetadataProvider"
class="at.asitplus.eidas.specific.connector.provider.PvpMetadataProvider" />
<bean id="PVPSubjectNameGenerator"
class="at.asitplus.eidas.specific.connector.builder.PvpSubjectNameGenerator" />
- <bean id="LoALevelMapper"
- class="at.asitplus.eidas.specific.connector.mapper.LoALevelMapper" />
-
- <bean id="GUIBuilderConfigurationFactory"
- class="at.asitplus.eidas.specific.connector.gui.GuiBuilderConfigurationFactory" />
-
- <bean id="velocityGUIBuilderImpl"
- class="at.asitplus.eidas.specific.connector.gui.DefaultVelocityGuiBuilderImpl" />
-
- <bean id="mvcGUIBuilderImpl"
- class="at.gv.egiz.eaaf.core.impl.gui.builder.SpringMvcGuiFormBuilderImpl" />
-
-
- <bean id="StatusMessageProvider"
- class="at.asitplus.eidas.specific.connector.provider.StatusMessageProvider" />
-
- <bean id="eidasRevisionLogger"
- class="at.asitplus.eidas.specific.connector.logger.RevisionLogger" />
-
- <bean id="eidasStatisticLogger"
- class="at.asitplus.eidas.specific.connector.logger.StatisticLogger" />
-
-
<!-- Tasks -->
<bean id="GenerateCountrySelectionFrameTask"
class="at.asitplus.eidas.specific.connector.processes.tasks.GenerateCountrySelectionFrameTask"
diff --git a/connector/src/main/resources/specific_eIDAS_connector.storage.beans.xml b/connector/src/main/resources/specific_eIDAS_connector.storage.beans.xml
deleted file mode 100644
index 2e4d1742..00000000
--- a/connector/src/main/resources/specific_eIDAS_connector.storage.beans.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
- <import
- resource="classpath:specificCommunicationDefinitionApplicationContext.xml" />
-
- <!-- <bean id="SimpleInMemoryTransactionStorage" class="at.asitplus.eidas.specific.connector.storage.SimpleInMemoryTransactionStorage"
- /> -->
-
- <bean id="eIDASCacheTransactionStoreDecorator"
- class="at.asitplus.eidas.specific.connector.storage.EidasCacheTransactionStoreDecorator" />
-
- <bean id="CacheWitheIDASBackend"
- class="at.asitplus.eidas.specific.connector.storage.CacheWithEidasBackend">
- <constructor-arg ref="msNodeCacheImpl" />
- </bean>
-
- <bean id="msNodeCacheImpl"
- class="eu.eidas.auth.cache.ConcurrentCacheServiceIgniteSpecificCommunicationImpl">
- <property name="igniteInstanceInitializerSpecificCommunication" ref="eidasIgniteInstanceInitializerSpecificCommunication" />
- <property name="cacheName" value="msConnectorCache" />
- </bean>
-
- <bean id="IgniteClusterState"
- class="at.asitplus.eidas.specific.connector.health.IgniteClusterHealthIndicator">
- <property name="igniteInstanceInitializerSpecificCommunication" ref="eidasIgniteInstanceInitializerSpecificCommunication" />
- </bean>
-
-
- <!-- bean id="defaultHazelcastInstance" class="java.lang.String"> <constructor-arg
- value="eidasHazelcastInstance"/> </bean> <bean id="eidasHazelcastInstanceInitializer"
- class=" eu.eidas.auth.commons.cache.HazelcastInstanceInitializer" init-method="initializeInstance"
- lazy-init="true"> <property name="hazelcastConfigfileName" value="#{eidasConfigRepository}hazelcast.xml"/>
- <property name="hazelcastInstanceName" ref="defaultHazelcastInstance"/> </bean>
- <bean id="springServiceCMapspecificMSSpCorProviderProd" class="eu.eidas.auth.commons.cache.ConcurrentMapServiceDistributedImpl"
- lazy-init="true"> <property name="hazelcastInstanceInitializer" ref="eidasHazelcastInstanceInitializer"/>
- <property name="cacheName" value="specificSpRequestCorrelationCacheService"/>
- </bean> <bean id="springServiceCMapspecificMSSpCorProviderDev" class="eu.eidas.auth.commons.cache.ConcurrentMapServiceDefaultImpl">
- <property name="expireAfterAccess" value="1800"/> <property name="maximumSize"
- value="1000"/> </bean -->
-
-</beans> \ No newline at end of file
diff --git a/connector/src/main/webapp/img/countries/Lichtenstein.png b/connector/src/main/webapp/img/countries/Lichtenstein.png
new file mode 100644
index 00000000..09755c7f
--- /dev/null
+++ b/connector/src/main/webapp/img/countries/Lichtenstein.png
Binary files differ
diff --git a/connector/src/main/webapp/img/countries/Lichtenstein_gray.png b/connector/src/main/webapp/img/countries/Lichtenstein_gray.png
new file mode 100644
index 00000000..09755c7f
--- /dev/null
+++ b/connector/src/main/webapp/img/countries/Lichtenstein_gray.png
Binary files differ
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/AuthBlockAttributeBuilderTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/AuthBlockAttributeBuilderTest.java
index 5c0a1420..6c6276c3 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/AuthBlockAttributeBuilderTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/AuthBlockAttributeBuilderTest.java
@@ -14,7 +14,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import at.asitplus.eidas.specific.connector.attributes.AuthBlockAttributeBuilder;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions;
import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder;
import at.gv.egiz.eaaf.core.api.idp.IAuthData;
@@ -62,7 +62,7 @@ public class AuthBlockAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(Constants.SZR_AUTHBLOCK, JSW);
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, JSW);
final String value = attrBuilde.build(spConfig, authData, gen);
@@ -80,7 +80,7 @@ public class AuthBlockAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(Constants.SZR_AUTHBLOCK, null);
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, null);
final String value = attrBuilde.build(spConfig, authData, gen);
Assert.fail("Attr. Builder provide no 'UnavailableAttributeException'");
@@ -99,7 +99,7 @@ public class AuthBlockAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(Constants.SZR_AUTHBLOCK, "");
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_SZR_AUTHBLOCK, "");
final String value = attrBuilde.build(spConfig, authData, gen);
Assert.fail("Attr. Builder provide no 'UnavailableAttributeException'");
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/EidasBindAttributeBuilderTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/EidasBindAttributeBuilderTest.java
index 9a2c6cdc..969a22fb 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/EidasBindAttributeBuilderTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/attributes/EidasBindAttributeBuilderTest.java
@@ -1,7 +1,5 @@
package at.asitplus.eidas.specific.connector.test.attributes;
-import static at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants.EIDAS_BIND;
-
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
@@ -12,6 +10,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import at.asitplus.eidas.specific.connector.attributes.EidasBindAttributeBuilder;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions;
import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder;
import at.gv.egiz.eaaf.core.api.idp.IAuthData;
@@ -54,7 +53,7 @@ public class EidasBindAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(EIDAS_BIND, "vuG8w29GT0");
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, "vuG8w29GT0");
final String value = attrBuilde.build(spConfig, authData, gen);
@@ -70,7 +69,7 @@ public class EidasBindAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(EIDAS_BIND, null);
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, null);
final String value = attrBuilde.build(spConfig, authData, gen);
Assert.fail("Attr. Builder provide no 'UnavailableAttributeException'");
@@ -89,7 +88,7 @@ public class EidasBindAttributeBuilderTest extends AbstractAttributeBuilderTest
log.info("starting: " + mTestName);
try {
final IAuthData authData = buildAuthData();
- ((AuthenticationData) authData).setGenericData(EIDAS_BIND, "");
+ ((AuthenticationData) authData).setGenericData(MsEidasNodeConstants.AUTH_DATA_EIDAS_BIND, "");
final String value = attrBuilde.build(spConfig, authData, gen);
Assert.fail("Attr. Builder provide no 'UnavailableAttributeException'");
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigurationTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigurationTest.java
index 80307ea2..f9a43b52 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigurationTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigurationTest.java
@@ -17,7 +17,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
+import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
@@ -28,7 +28,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
index 5b612036..499c5937 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/controller/ProcessEngineSignalControllerTest.java
@@ -25,7 +25,7 @@ import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java
deleted file mode 100644
index b04a5bdb..00000000
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.health;
-
-import java.io.IOException;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.http.MediaType;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-
-import at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator;
-import okhttp3.mockwebserver.MockResponse;
-import okhttp3.mockwebserver.MockWebServer;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration({
- "/spring/SpringTest-context_healthcheck.xml" })
-@TestPropertySource(locations = {"classpath:/config/junit_config_2_springboot.properties"})
-@WebAppConfiguration
-public class EidasNodeMetadataHealthIndicatorNoEndpointTest {
-
- @Autowired EidasNodeMetadataHealthIndicator health;
-
- private static MockWebServer mockWebServer = null;
-
- /**
- * Testclass initializer.
- *
- * @throws IOException In case of an error
- */
- @BeforeClass
- public static void classInitializer() throws IOException {
- mockWebServer = new MockWebServer();
- mockWebServer.start(40900);
- mockWebServer.url("/mockup");
-
- }
-
- @AfterClass
- public static void resetTestEnviroment() throws NoSuchFieldException, SecurityException,
- IllegalArgumentException, IllegalAccessException, IOException {
- mockWebServer.shutdown();
-
- }
-
- @Test
- public void noEndpointInConfiguration() throws IOException {
- //set-up status
- mockWebServer.enqueue(new MockResponse().setResponseCode(200)
- .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorNoEndpointTest.class
- .getResourceAsStream("/config/log4j.properties"), "UTF-8"))
- .setHeader("Content-Type", MediaType.APPLICATION_XML));
-
- //perform test
- Health status = health.health();
-
- //validate state
- Assert.assertEquals("wrong healthState", Health.unknown().build().getStatus(), status.getStatus());
-
- }
-
-}
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java
deleted file mode 100644
index b044d4d2..00000000
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.health;
-
-import java.io.IOException;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.actuate.health.Health;
-import org.springframework.http.MediaType;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-
-import at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator;
-import okhttp3.mockwebserver.MockResponse;
-import okhttp3.mockwebserver.MockWebServer;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration({
- "/spring/SpringTest-context_healthcheck.xml" })
-@TestPropertySource(locations = {"classpath:/config/junit_config_1_springboot.properties"})
-@WebAppConfiguration
-public class EidasNodeMetadataHealthIndicatorTest {
-
- @Autowired EidasNodeMetadataHealthIndicator health;
-
- private static MockWebServer mockWebServer = null;
-
- /**
- * Testclass initializer.
- *
- * @throws IOException In case of an error
- */
- @BeforeClass
- public static void classInitializer() throws IOException {
- mockWebServer = new MockWebServer();
- mockWebServer.start(40900);
- mockWebServer.url("/mockup");
-
- }
-
- @AfterClass
- public static void resetTestEnviroment() throws NoSuchFieldException, SecurityException,
- IllegalArgumentException, IllegalAccessException, IOException {
- mockWebServer.shutdown();
-
- }
-
- @Test
- public void httpStatusCode500() throws IOException {
- //set-up status
- mockWebServer.enqueue(new MockResponse().setResponseCode(500)
- .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class
- .getResourceAsStream("/data/metadata_valid.xml"), "UTF-8"))
- .setHeader("Content-Type", MediaType.APPLICATION_XML));
-
- //perform test
- Health status = health.health();
-
- //validate state
- Assert.assertEquals("wrong healthState", Health.down().build().getStatus(), status.getStatus());
-
- }
-
- @Test
- public void httpStatusCode200() throws IOException {
- //set-up status
- mockWebServer.enqueue(new MockResponse().setResponseCode(200)
- .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class
- .getResourceAsStream("/data/metadata_valid.xml"), "UTF-8"))
- .setHeader("Content-Type", MediaType.APPLICATION_XML));
-
- //perform test
- Health status = health.health();
-
- //validate state
- Assert.assertEquals("wrong healthState", Health.up().build().getStatus(), status.getStatus());
-
- }
-
- @Test
- public void noXmlResponse() throws IOException {
- //set-up status
- mockWebServer.enqueue(new MockResponse().setResponseCode(200)
- .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class
- .getResourceAsStream("/config/log4j.properties"), "UTF-8"))
- .setHeader("Content-Type", MediaType.APPLICATION_XML));
-
- //perform test
- Health status = health.health();
-
- //validate state
- Assert.assertEquals("wrong healthState", Health.down().build().getStatus(), status.getStatus());
-
- }
-
-}
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/saml2/Pvp2SProfileEndPointTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/saml2/Pvp2SProfileEndPointTest.java
index a6cc33ca..a9612297 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/saml2/Pvp2SProfileEndPointTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/saml2/Pvp2SProfileEndPointTest.java
@@ -47,10 +47,10 @@ import org.springframework.util.Base64Utils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
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.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
@@ -64,7 +64,7 @@ import net.shibboleth.utilities.java.support.xml.XMLParserException;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/EvaluateCountrySelectionTaskTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/EvaluateCountrySelectionTaskTest.java
index 4bff9416..abfc60ff 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/EvaluateCountrySelectionTaskTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/EvaluateCountrySelectionTaskTest.java
@@ -19,8 +19,8 @@ import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
import at.asitplus.eidas.specific.connector.processes.tasks.EvaluateCountrySelectionTask;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
import at.gv.egiz.eaaf.core.impl.idp.controller.tasks.AbstractLocaleAuthServletTask;
@@ -30,7 +30,7 @@ import at.gv.egiz.eaaf.core.impl.idp.process.ExecutionContextImpl;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/GenerateCountrySelectionFrameTaskTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/GenerateCountrySelectionFrameTaskTest.java
index 938e1f29..1e917e73 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/GenerateCountrySelectionFrameTaskTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/task/GenerateCountrySelectionFrameTaskTest.java
@@ -29,7 +29,7 @@ import at.gv.egiz.eaaf.core.impl.idp.process.ExecutionContextImpl;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java
deleted file mode 100644
index 17ecb2ca..00000000
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java
+++ /dev/null
@@ -1,368 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.utils;
-
-import static at.asitplus.eidas.specific.connector.MsEidasNodeConstants.PROP_CONFIG_SP_NEW_EID_MODE;
-
-import java.io.IOException;
-import java.security.PublicKey;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.transform.TransformerException;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.commons.lang3.RandomUtils;
-import org.junit.Assert;
-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.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.i18n.LocaleContextHolder;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.w3c.dom.Element;
-
-import at.asitplus.eidas.specific.connector.builder.AuthenticationDataBuilder;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
-import at.gv.egiz.eaaf.core.api.data.EaafConstants;
-import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions;
-import at.gv.egiz.eaaf.core.api.data.PvpAttributeDefinitions;
-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.IConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink;
-import at.gv.egiz.eaaf.core.exceptions.EaafAuthenticationException;
-import at.gv.egiz.eaaf.core.exceptions.EaafBuilderException;
-import at.gv.egiz.eaaf.core.exceptions.EaafParserException;
-import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
-import at.gv.egiz.eaaf.core.impl.builder.BpkBuilder;
-import at.gv.egiz.eaaf.core.impl.idp.EidAuthenticationData;
-import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;
-import at.gv.egiz.eaaf.core.impl.idp.auth.data.EidAuthProcessDataWrapper;
-import at.gv.egiz.eaaf.core.impl.idp.auth.data.SimpleIdentityLinkAssertionParser;
-import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySpConfiguration;
-import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl;
-import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xInitializer;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration({ "/applicationContext.xml", "/spring/SpringTest_connector.beans.xml", "/eaaf_core.beans.xml",
- "/eaaf_pvp.beans.xml", "/eaaf_pvp_idp.beans.xml", "/spring/SpringTest-context_simple_storage.xml" })
-@ActiveProfiles(profiles = {"deprecatedConfig"})
-@WebAppConfiguration
-public class AuthenticationDataBuilderTest {
-
- @Autowired
- private AuthenticationDataBuilder authenticationDataBuilder;
-
- @Autowired(required = true)
- private IConfiguration basicConfig;
-
- private MockHttpServletRequest httpReq;
- private MockHttpServletResponse httpResp;
- private TestRequestImpl pendingReq;
-
- private DummySpConfiguration oaParam;
-
- private String eidasBind;
- private String authBlock;
-
- @BeforeClass
- public static void classInitializer() throws InitializationException, ComponentInitializationException {
- final String current = new java.io.File(".").toURI().toString();
- System.setProperty("eidas.ms.configuration", current
- + "src/test/resources/config/junit_config_3.properties");
-
- EaafOpenSaml3xInitializer.eaafInitialize();
- }
-
- @Before
- public void initialize() throws EaafStorageException {
- httpReq = new MockHttpServletRequest("POST", "https://localhost/ms_connector");
- httpResp = new MockHttpServletResponse();
- RequestContextHolder.resetRequestAttributes();
- RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(httpReq, httpResp));
-
- final Map<String, String> spConfig = new HashMap<>();
- spConfig.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, "testSp");
- spConfig.put("target", "urn:publicid:gv.at:cdid+XX");
- spConfig.put(PROP_CONFIG_SP_NEW_EID_MODE, "true");
- oaParam = new DummySpConfiguration(spConfig, basicConfig);
-
- pendingReq = new TestRequestImpl();
- pendingReq.setAuthUrl("https://localhost/ms_connector");
- pendingReq.setPendingReqId(RandomStringUtils.randomAlphanumeric(10));
- pendingReq.setPiiTransactionId(RandomStringUtils.randomAlphanumeric(10));
- pendingReq.setSpConfig(oaParam);
- authBlock = RandomStringUtils.randomAlphanumeric(20);
- eidasBind = RandomStringUtils.randomAlphanumeric(20);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(Constants.SZR_AUTHBLOCK, authBlock);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setGenericDataToSession(Constants.EIDAS_BIND, eidasBind);
- pendingReq.getSessionData(AuthProcessDataWrapper.class)
- .setQaaLevel(EaafConstants.EIDAS_LOA_PREFIX + RandomStringUtils.randomAlphabetic(5));
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setGenericDataToSession(
- PvpAttributeDefinitions.EID_ISSUING_NATION_NAME,
- RandomStringUtils.randomAlphabetic(2));
-
- LocaleContextHolder.resetLocaleContext();
-
- }
-
- @Test
- public void eidMode() throws EaafAuthenticationException {
- // initialize state
- boolean isTestIdentity = RandomUtils.nextBoolean();
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(true);
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class).setTestIdentity(isTestIdentity);
-
- // execute
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
- // validate state
- Assert.assertNotNull("AuthData null", authData);
- Assert.assertNotNull("authBlock null", authData.getGenericData(Constants.SZR_AUTHBLOCK, String.class));
- Assert.assertNotNull("eidasBind null", authData.getGenericData(Constants.EIDAS_BIND, String.class));
- Assert.assertNotNull("LoA null", authData.getEidasQaaLevel());
- Assert.assertEquals("testIdentity flag",
- isTestIdentity ? EidIdentityStatusLevelValues.TESTIDENTITY : EidIdentityStatusLevelValues.IDENTITY,
- ((EidAuthenticationData)authData).getEidStatus());
-
- String authBlock = authData.getGenericData(Constants.SZR_AUTHBLOCK, String.class);
- String eidasBind = authData.getGenericData(Constants.EIDAS_BIND, String.class);
-
- Assert.assertEquals("authBlock not equal", this.authBlock, authBlock);
- Assert.assertEquals("eidasBind not equal", this.eidasBind, eidasBind);
- Assert.assertEquals("piiTransactionId",
- authData.getGenericData(ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_NAME, String.class),
- this.pendingReq.getUniquePiiTransactionIdentifier());
- Assert.assertNotNull("assertion validTo", authData.getSsoSessionValidTo());
- Assert.assertEquals("LoA", pendingReq.getSessionData(AuthProcessDataWrapper.class).getQaaLevel(),
- authData.getEidasQaaLevel());
- Assert.assertEquals("EID-ISSUING-NATION",
- pendingReq.getSessionData(AuthProcessDataWrapper.class).getGenericDataFromSession(
- PvpAttributeDefinitions.EID_ISSUING_NATION_NAME),
- authData.getCiticenCountryCode());
-
- Assert.assertNull("bPK", authData.getBpk());
- Assert.assertNull("bPKType", authData.getBpkType());
- Assert.assertNull("FamilyName", authData.getFamilyName());
- Assert.assertNull("GivenName", authData.getGivenName());
- Assert.assertNull("DateOfBirth", authData.getDateOfBirth());
- Assert.assertNull("baseId", authData.getIdentificationValue());
- Assert.assertNull("baseIdType", authData.getIdentificationType());
- Assert.assertNull("IDL", authData.getIdentityLink());
-
- }
-
- @Test
- public void moaIdMode() throws EaafAuthenticationException, EaafBuilderException {
- //initialize state
- boolean isTestIdentity = RandomUtils.nextBoolean();
- pendingReq.getSessionData(EidAuthProcessDataWrapper.class).setTestIdentity(isTestIdentity);
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setEidProcess(false);
- IIdentityLink idl = buildDummyIdl();
- pendingReq.getSessionData(AuthProcessDataWrapper.class).setIdentityLink(idl);
-
- //execute
- IAuthData authData = authenticationDataBuilder.buildAuthenticationData(pendingReq);
-
- //validate state
- Assert.assertNotNull("AuthData null", authData);
- Assert.assertNull("authBlock null", authData.getGenericData(Constants.SZR_AUTHBLOCK, String.class));
- Assert.assertNull("eidasBind null", authData.getGenericData(Constants.EIDAS_BIND, String.class));
- Assert.assertNull("piiTransactionId",
- authData.getGenericData(ExtendedPvpAttributeDefinitions.EID_PII_TRANSACTION_ID_NAME, String.class));
-
- Assert.assertEquals("testIdentity flag",
- isTestIdentity ? EidIdentityStatusLevelValues.TESTIDENTITY : EidIdentityStatusLevelValues.IDENTITY,
- ((EidAuthenticationData)authData).getEidStatus());
-
- Assert.assertNotNull("assertion validTo", authData.getSsoSessionValidTo());
- Assert.assertNotNull("LoA null", authData.getEidasQaaLevel());
- Assert.assertEquals("LoA", pendingReq.getSessionData(AuthProcessDataWrapper.class).getQaaLevel(),
- authData.getEidasQaaLevel());
- Assert.assertEquals("EID-ISSUING-NATION",
- pendingReq.getSessionData(AuthProcessDataWrapper.class).getGenericDataFromSession(
- PvpAttributeDefinitions.EID_ISSUING_NATION_NAME),
- authData.getCiticenCountryCode());
-
- Assert.assertEquals("FamilyName", idl.getFamilyName(), authData.getFamilyName());
- Assert.assertEquals("GivenName", idl.getGivenName(), authData.getGivenName());
- Assert.assertEquals("DateOfBirth", idl.getDateOfBirth(), authData.getDateOfBirth());
- Assert.assertEquals("bPK",
- BpkBuilder.generateAreaSpecificPersonIdentifier(
- idl.getIdentificationValue(), EaafConstants.URN_PREFIX_CDID + "XX").getFirst(),
- authData.getBpk());
- Assert.assertEquals("bPKType", EaafConstants.URN_PREFIX_CDID + "XX", authData.getBpkType());
- Assert.assertNotNull("IDL", authData.getIdentityLink());
-
-
- }
-
- private IIdentityLink buildDummyIdl() {
- return new IIdentityLink() {
-
- String familyName = RandomStringUtils.randomAlphabetic(10);
- String givenName = RandomStringUtils.randomAlphabetic(10);
- String dateOfBirth = "1955-02-03";
- String baseId = RandomStringUtils.randomAlphanumeric(20);
- String saml2Serialized = RandomStringUtils.randomAlphanumeric(150);
-
-
-
- @Override
- public void setSamlAssertion(Element arg0) throws TransformerException, IOException {
-
- }
-
- @Override
- public void setPublicKey(PublicKey[] arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setPrPerson(Element arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setIssueInstant(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setIdentificationValue(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setIdentificationType(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setGivenName(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setFamilyName(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setDsigReferenceTransforms(Element[] arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setDateOfBirth(String arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public String getSerializedSamlAssertion() {
- return this.saml2Serialized;
- }
-
- @Override
- public Element getSamlAssertion() {
- IIdentityLink fullIdl;
- try {
- fullIdl = new SimpleIdentityLinkAssertionParser(
- AuthenticationDataBuilderTest.class.getResourceAsStream("/data/test_idl_1.xml")).parseIdentityLink();
- return fullIdl.getSamlAssertion();
-
- } catch (EaafParserException e) {
- e.printStackTrace();
- }
-
- return null;
-
- }
-
- @Override
- public PublicKey[] getPublicKey() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Element getPrPerson() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Date getIssueInstantDate() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getIssueInstant() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getIdentificationValue() {
- return this.baseId;
- }
-
- @Override
- public String getIdentificationType() {
- return EaafConstants.URN_PREFIX_BASEID;
- }
-
- @Override
- public String getGivenName() {
- return this.givenName;
- }
-
- @Override
- public String getFamilyName() {
- return this.familyName;
- }
-
- @Override
- public Element[] getDsigReferenceTransforms() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getDateOfBirth() {
- return this.dateOfBirth;
-
- }
- };
- }
-
-}
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
index c57515a0..ea163e61 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthnRequestValidatorTest.java
@@ -31,8 +31,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException;
@@ -48,11 +48,11 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"/applicationContext.xml",
- "/specific_eIDAS_connector.beans.xml",
+ "/spring/SpringTest_connector.beans.xml",
"/eaaf_core.beans.xml",
"/eaaf_pvp.beans.xml",
"/eaaf_pvp_idp.beans.xml",
- "/spring/SpringTest-context_simple_storage.xml" })
+ "/spring/SpringTest-context_simple_storage.xml"})
@ActiveProfiles(profiles = {"deprecatedConfig"})
@WebAppConfiguration
@DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/CountrySelectionProcessImplTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/CountrySelectionProcessImplTest.java
index d0343eba..368a8e4e 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/CountrySelectionProcessImplTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/CountrySelectionProcessImplTest.java
@@ -17,8 +17,8 @@ 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.connector.MsEidasNodeConstants;
import at.asitplus.eidas.specific.connector.processes.CountrySelectionProcessImpl;
+import at.asitplus.eidas.specific.core.MsEidasNodeConstants;
import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
diff --git a/connector/src/test/resources/config/logback_config.xml b/connector/src/test/resources/config/logback_config.xml
index fa27a46a..bb3de3e8 100644
--- a/connector/src/test/resources/config/logback_config.xml
+++ b/connector/src/test/resources/config/logback_config.xml
@@ -89,10 +89,10 @@
<logger name="at.gv.egiz.eidas.specific" additivity="false" level="info">
<appender-ref ref="msnode"/>
</logger>
- <logger name="at.gv.egiz.eidas.specific.connector.logger.RevisionLogger" additivity="false" level="info">
+ <logger name="at.gv.egiz.eidas.specific.core.logger.RevisionLogger" additivity="false" level="info">
<appender-ref ref="reversion"/>
</logger>
- <logger name="at.gv.egiz.eidas.specific.connector.logger.StatisticLogger" additivity="false" level="info">
+ <logger name="at.gv.egiz.eidas.specific.core.logger.StatisticLogger" additivity="false" level="info">
<appender-ref ref="statistic"/>
</logger>
<root level="warn">
diff --git a/connector/src/test/resources/spring/SpringTest-context_basic_test.xml b/connector/src/test/resources/spring/SpringTest-context_basic_test.xml
deleted file mode 100644
index 5d052be9..00000000
--- a/connector/src/test/resources/spring/SpringTest-context_basic_test.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
-
- <context:annotation-config />
-
- <import resource="classpath:/SpringTest-context_authManager.xml" />
-
- <bean id="BasicMSSpecificNodeConfig"
- class="at.asitplus.eidas.specific.connector.config.BasicConfigurationProvider">
- <constructor-arg
- value="#{systemProperties['eidas.ms.configuration']}" />
- </bean>
-
-</beans> \ No newline at end of file
diff --git a/connector/src/test/resources/spring/SpringTest-context_healthcheck.xml b/connector/src/test/resources/spring/SpringTest-context_healthcheck.xml
deleted file mode 100644
index 3bac88e3..00000000
--- a/connector/src/test/resources/spring/SpringTest-context_healthcheck.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
-
- <context:annotation-config />
-
- <import resource="classpath:/SpringTest-context_authManager.xml" />
-
- <bean id="basicConfig"
- class="at.asitplus.eidas.specific.connector.config.SpringBootBasicConfigurationProvider" />
-
- <bean id="eidasNodeMetadata"
- class="at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator" />
-
-</beans> \ No newline at end of file
diff --git a/connector/src/test/resources/spring/SpringTest-context_simple_storage.xml b/connector/src/test/resources/spring/SpringTest-context_simple_storage.xml
deleted file mode 100644
index 5ee3e0b8..00000000
--- a/connector/src/test/resources/spring/SpringTest-context_simple_storage.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
-
- <bean id="SimpleInMemoryTransactionStorage"
- class="at.asitplus.eidas.specific.connector.storage.SimpleInMemoryTransactionStorage" />
-
-</beans> \ No newline at end of file
diff --git a/connector/src/test/resources/spring/SpringTest_connector.beans.xml b/connector/src/test/resources/spring/SpringTest_connector.beans.xml
index 0645ed31..3d5b0458 100644
--- a/connector/src/test/resources/spring/SpringTest_connector.beans.xml
+++ b/connector/src/test/resources/spring/SpringTest_connector.beans.xml
@@ -11,25 +11,12 @@
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
- <context:annotation-config />
- <mvc:annotation-driven />
- <mvc:default-servlet-handler />
-
- <bean id="defaultErrorTicketService"
- class="at.gv.egiz.eaaf.core.impl.idp.auth.services.DefaultErrorService"/>
-
- <bean id="WebResourceConfiguration"
- class="at.asitplus.eidas.specific.connector.gui.config.StaticResourceConfiguration" />
+
+ <import resource="classpath:/spring/SpringTest_core.beans.xml"/>
<bean id="ProcessEngineSignalController"
class="at.asitplus.eidas.specific.connector.controller.ProcessEngineSignalController" />
- <bean id="AuthenticationManager"
- class="at.asitplus.eidas.specific.connector.auth.AuthenticationManager" />
-
- <bean id="AuthenticationDataBuilder"
- class="at.asitplus.eidas.specific.connector.builder.AuthenticationDataBuilder" />
-
<bean id="PVPEndPointConfiguration"
class="at.asitplus.eidas.specific.connector.config.PvpEndPointConfiguration" />
@@ -48,10 +35,6 @@
<bean id="AuthnRequestValidator"
class="at.asitplus.eidas.specific.connector.verification.AuthnRequestValidator" />
- <!-- bean id="SAMLVerificationEngine"
- class="at.gv.egiz.eaaf.modules.pvp2.impl.verification.SamlVerificationEngine" /-->
-
-
<bean id="pvpMetadataService"
class="at.gv.egiz.eaaf.modules.pvp2.idp.impl.MetadataAction">
<property name="pvpIdpCredentials">
@@ -65,53 +48,12 @@
<property name="metadataProvider" ref="PVPMetadataProvider" />
</bean>
- <bean id="eaafProtocolAuthenticationService"
- class="at.gv.egiz.eaaf.core.impl.idp.auth.services.ProtocolAuthenticationService">
- <property name="guiBuilder" ref="mvcGUIBuilderImpl" />
- </bean>
-
- <bean id="securePendingRequestIdGeneration"
- class="at.gv.egiz.eaaf.core.impl.utils.SecurePendingRequestIdGenerationStrategy" />
-
<bean id="PVPMetadataProvider"
class="at.asitplus.eidas.specific.connector.provider.PvpMetadataProvider" />
<bean id="PVPSubjectNameGenerator"
class="at.asitplus.eidas.specific.connector.builder.PvpSubjectNameGenerator" />
- <bean id="LoALevelMapper"
- class="at.asitplus.eidas.specific.connector.mapper.LoALevelMapper" />
-
- <bean id="GUIBuilderConfigurationFactory"
- class="at.asitplus.eidas.specific.connector.gui.GuiBuilderConfigurationFactory" />
-
- <bean id="velocityGUIBuilderImpl"
- class="at.asitplus.eidas.specific.connector.gui.DefaultVelocityGuiBuilderImpl" />
-
- <bean id="mvcGUIBuilderImpl"
- class="at.gv.egiz.eaaf.core.impl.gui.builder.SpringMvcGuiFormBuilderImpl" />
-
- <bean id="templateEngine"
- class="org.thymeleaf.spring5.SpringTemplateEngine">
- <property name="templateResolver" ref="templateResolver" />
- </bean>
-
- <bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
- <property name="order" value="2" />
- <property name="templateEngine" ref="templateEngine" />
- <property name="characterEncoding" value="UTF-8" />
- </bean>
-
- <bean id="StatusMessageProvider"
- class="at.asitplus.eidas.specific.connector.provider.StatusMessageProvider" />
-
- <bean id="eidasRevisionLogger"
- class="at.asitplus.eidas.specific.connector.logger.RevisionLogger" />
-
- <bean id="eidasStatisticLogger"
- class="at.asitplus.eidas.specific.connector.logger.StatisticLogger" />
-
-
<!-- Tasks -->
<bean id="GenerateCountrySelectionFrameTask"
class="at.asitplus.eidas.specific.connector.processes.tasks.GenerateCountrySelectionFrameTask"