aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2023-09-27 14:07:56 +0200
committerThomas <>2024-01-26 18:49:57 +0100
commitb3a0302041d08ba8360d96216b6da67580850717 (patch)
tree9dc2fc819ce886ce1365c94ac3ae9f2a9adbab35
parent1a77d8ff850d014cd81fcc1fd867a2953b497833 (diff)
downloadNational_eIDAS_Gateway-b3a0302041d08ba8360d96216b6da67580850717.tar.gz
National_eIDAS_Gateway-b3a0302041d08ba8360d96216b6da67580850717.tar.bz2
National_eIDAS_Gateway-b3a0302041d08ba8360d96216b6da67580850717.zip
feat(eidas): refactoring to eIDAS node v2.7
-rw-r--r--basicConfig/eIDAS/igniteSpecificCommunication.xml126
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationSpringResourceProvider.java2
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java4
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java7
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java3
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java3
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml24
-rw-r--r--modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml2
-rw-r--r--modules/core_common_webapp/src/main/resources/specific_eIDAS_core_storage.beans.xml4
-rw-r--r--modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java4
-rw-r--r--modules/core_commons_eidas/src/main/resources/eidas_v27_connector.beans.xml47
-rw-r--r--modules/core_commons_eidas/src/main/resources/eidas_v27_proxyservice.beans.xml48
-rw-r--r--modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml20
-rw-r--r--modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java8
-rw-r--r--modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java4
-rw-r--r--modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java4
-rw-r--r--modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerBorisTest.java4
-rw-r--r--modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerTest.java4
-rw-r--r--modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/ProxyServiceAuthenticationActionTest.java4
-rw-r--r--modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml2
-rw-r--r--ms_specific_connector/src/main/resources/application.properties13
-rw-r--r--ms_specific_connector/src/main/resources/environmentContext.xml50
-rw-r--r--ms_specific_connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java10
-rw-r--r--ms_specific_proxyservice/src/main/resources/application.properties13
-rw-r--r--ms_specific_proxyservice/src/main/resources/environmentContext.xml49
-rw-r--r--ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java7
-rw-r--r--pom.xml2
27 files changed, 275 insertions, 193 deletions
diff --git a/basicConfig/eIDAS/igniteSpecificCommunication.xml b/basicConfig/eIDAS/igniteSpecificCommunication.xml
deleted file mode 100644
index da61cbf1..00000000
--- a/basicConfig/eIDAS/igniteSpecificCommunication.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- ~ Copyright (c) 2018 by European Commission
- ~
- ~ Licensed under the EUPL, Version 1.2 or - as soon they will be
- ~ approved by the European Commission - subsequent versions of the
- ~ EUPL (the "Licence");
- ~ You may not use this work except in compliance with the Licence.
- ~ You may obtain a copy of the Licence at:
- ~ https://joinup.ec.europa.eu/page/eupl-text-11-12
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the Licence is distributed on an "AS IS" basis,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- ~ implied.
- ~ See the Licence for the specific language governing permissions and
- ~ limitations under the Licence.
- -->
-
-<!--
- Ignite Spring configuration file to startup Ignite cache.
-
- This file demonstrates how to configure cache using Spring. Provided cache
- will be created on node startup.
-
- Use this configuration file when running HTTP REST examples (see 'examples/rest' folder).
-
- When starting a standalone node, you need to execute the following command:
- {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/ignite-cache.xml
-
- When starting Ignite from Java IDE, pass path to this file to Ignition:
- Ignition.start("examples/config/ignite-cache.xml");
--->
-
-
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean id="igniteSpecificCommunication.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
-
- <property name="igniteInstanceName" value="igniteSpecificCommunication"/>
-
- <property name="cacheConfiguration">
- <list>
-
- <!--Specific Communication Caches-->
- <!-- Partitioned cache example configuration (Atomic mode). -->
- <bean class="org.apache.ignite.configuration.CacheConfiguration">
- <property name="name" value="specificNodeConnectorRequestCache"/>
- <property name="atomicityMode" value="ATOMIC"/>
- <property name="backups" value="1"/>
- <property name="expiryPolicyFactory" ref="7_minutes_duration"/>
- </bean>
- <!-- Partitioned cache example configuration (Atomic mode). -->
- <bean class="org.apache.ignite.configuration.CacheConfiguration">
- <property name="name" value="nodeSpecificProxyserviceRequestCache"/>
- <property name="atomicityMode" value="ATOMIC"/>
- <property name="backups" value="1"/>
- <property name="expiryPolicyFactory" ref="7_minutes_duration"/>
- </bean>
- <!-- Partitioned cache example configuration (Atomic mode). -->
- <bean class="org.apache.ignite.configuration.CacheConfiguration">
- <property name="name" value="specificNodeProxyserviceResponseCache"/>
- <property name="atomicityMode" value="ATOMIC"/>
- <property name="backups" value="1"/>
- <property name="expiryPolicyFactory" ref="7_minutes_duration"/>
- </bean>
- <!-- Partitioned cache example configuration (Atomic mode). -->
- <bean class="org.apache.ignite.configuration.CacheConfiguration">
- <property name="name" value="nodeSpecificConnectorResponseCache"/>
- <property name="atomicityMode" value="ATOMIC"/>
- <property name="backups" value="1"/>
- <property name="expiryPolicyFactory" ref="7_minutes_duration"/>
- </bean>
- <!-- Partitioned cache example configuration (Atomic mode). -->
- <bean class="org.apache.ignite.configuration.CacheConfiguration">
- <property name="name" value="msConnectorCache"/>
- <property name="atomicityMode" value="ATOMIC"/>
- <property name="backups" value="1"/>
- <property name="expiryPolicyFactory" ref="7_minutes_duration"/>
- </bean>
-
- </list>
- </property>
-
- <!--Multicast discover of other nodes in the grid configuration-->
- <property name="discoverySpi">
- <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
- <property name="ipFinder">
- <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
- <property name="multicastGroup" value="228.10.10.157"/>
- </bean>
- </property>
- </bean>
- </property>
-
- <!-- how frequently Ignite will output basic node metrics into the log-->
- <property name="metricsLogFrequency" value="#{60 * 10 * 1000}"/>
-
- </bean>
-
- <!--
- Initialize property configurer so we can reference environment variables.
- -->
- <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_FALLBACK"/>
- <property name="searchSystemEnvironment" value="true"/>
- </bean>
-
- <!--
- Defines expiry policy based on moment of creation for ignite cache.
- -->
- <bean id="7_minutes_duration" class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf" scope="prototype">
- <constructor-arg>
- <bean class="javax.cache.expiry.Duration">
- <constructor-arg value="MINUTES"/>
- <constructor-arg value="7"/>
- </bean>
- </constructor-arg>
- </bean>
-
-</beans>
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationSpringResourceProvider.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationSpringResourceProvider.java
index e5b10185..03cbd2c1 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationSpringResourceProvider.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasAuthenticationSpringResourceProvider.java
@@ -45,7 +45,7 @@ public class EidasAuthenticationSpringResourceProvider implements SpringResource
public Resource[] getResourcesToLoad() {
final ClassPathResource eidasAuthConfig = new ClassPathResource("/eidas_v2_auth.beans.xml",
EidasAuthenticationSpringResourceProvider.class);
- final ClassPathResource eidasRefImplConfig = new ClassPathResource("/eidas_v2_auth_ref_impl_config.beans.xml",
+ final ClassPathResource eidasRefImplConfig = new ClassPathResource("/eidas_v27_connector.beans.xml",
EidasAuthenticationSpringResourceProvider.class);
return new Resource[] { eidasRefImplConfig, eidasAuthConfig };
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
index e3600329..ae03d4e0 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/EidasSignalServlet.java
@@ -40,12 +40,12 @@ import org.springframework.web.bind.annotation.RequestMethod;
import com.google.common.collect.ImmutableSortedSet;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasSAuthenticationException;
+import at.asitplus.eidas.specific.modules.core.eidas.EidasConstants;
import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractProcessEngineSignalController;
import eu.eidas.auth.commons.EidasParameterKeys;
import eu.eidas.auth.commons.light.ILightResponse;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
@@ -110,7 +110,7 @@ public class EidasSignalServlet extends AbstractProcessEngineSignalController {
final SpecificCommunicationService specificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE);
final ILightResponse eidasResponse = specificConnectorCommunicationService.getAndRemoveResponse(
tokenBase64,
ImmutableSortedSet.copyOf(attrRegistry.getCoreAttributeRegistry().getAttributes()));
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
index 82489e25..f14c8f90 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java
@@ -59,7 +59,6 @@ import eu.eidas.auth.commons.light.ILightRequest;
import eu.eidas.auth.commons.light.impl.LightRequest;
import eu.eidas.auth.commons.tx.BinaryLightToken;
import eu.eidas.specificcommunication.BinaryLightTokenHelper;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.extern.slf4j.Slf4j;
@@ -192,12 +191,14 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {
throws ServletException {
final BinaryLightToken binaryLightToken;
try {
- String beanName = SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString();
- final SpecificCommunicationService service = (SpecificCommunicationService) context.getBean(beanName);
+ final SpecificCommunicationService service = (SpecificCommunicationService) context.getBean(
+ EidasConstants.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE);
binaryLightToken = service.putRequest(lightRequest);
+
} catch (final SpecificCommunicationException e) {
log.error("Unable to process specific request");
throw new ServletException(e);
+
}
return binaryLightToken;
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
index ac70a2ac..b05ce69d 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseAlternativeTask.java
@@ -53,7 +53,6 @@ import eu.eidas.auth.commons.light.ILightResponse;
import eu.eidas.auth.commons.light.impl.LightResponse;
import eu.eidas.auth.commons.tx.BinaryLightToken;
import eu.eidas.specificcommunication.BinaryLightTokenHelper;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.extern.slf4j.Slf4j;
@@ -177,7 +176,7 @@ public class ReceiveAuthnResponseAlternativeTask extends AbstractAuthServletTask
final SpecificCommunicationService specificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
BinaryLightToken token = specificConnectorCommunicationService.putResponse(
LightResponse.builder(eidasResponse).relayState(pendingReq.getPendingRequestId()).build());
final String tokenBase64 = BinaryLightTokenHelper.encodeBinaryLightTokenBase64(token);
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
index cc497318..15d2616c 100644
--- a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveAuthnResponseTask.java
@@ -54,7 +54,6 @@ import eu.eidas.auth.commons.light.ILightResponse;
import eu.eidas.auth.commons.light.impl.LightResponse;
import eu.eidas.auth.commons.tx.BinaryLightToken;
import eu.eidas.specificcommunication.BinaryLightTokenHelper;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.extern.slf4j.Slf4j;
@@ -137,7 +136,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask {
final SpecificCommunicationService specificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
BinaryLightToken token = specificConnectorCommunicationService.putResponse(
LightResponse.builder(eidasResponse).relayState(pendingReq.getPendingRequestId()).build());
final String tokenBase64 = BinaryLightTokenHelper.encodeBinaryLightTokenBase64(token);
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
index d71a47dc..517be19a 100644
--- a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_basic_test.xml
@@ -11,18 +11,9 @@
<context:annotation-config />
+ <!-- to communicate with reference implementation -->
-
- <bean id="eidasConnectorMessageSource"
- class="at.asitplus.eidas.specific.modules.auth.eidas.v2.config.EidasConnectorMessageSource"/>
-
- <bean id="SZRClientForeIDAS"
- class="at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.szr.SzrClient" />
-
- <!-- <bean id="eIDASDataStore" class="at.asitplus.eidas.specific.modules.auth.eidas.v2.service.eIDASDataStore"
- /> -->
-
- <bean id="springManagedSpecificConnectorCommunicationService"
+ <bean id="connectorCommunicationService"
class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
<bean id="specificConnectorAttributesFileWithPath"
@@ -45,6 +36,17 @@
ref="specificConnectorAdditionalAttributesFileWithPath" />
</bean>
+
+
+ <bean id="eidasConnectorMessageSource"
+ class="at.asitplus.eidas.specific.modules.auth.eidas.v2.config.EidasConnectorMessageSource"/>
+
+ <bean id="SZRClientForeIDAS"
+ class="at.asitplus.eidas.specific.modules.auth.eidas.v2.clients.szr.SzrClient" />
+
+ <!-- <bean id="eIDASDataStore" class="at.asitplus.eidas.specific.modules.auth.eidas.v2.service.eIDASDataStore"
+ /> -->
+
<bean id="connectorAttributeRegistry"
class="at.asitplus.eidas.specific.modules.auth.eidas.v2.service.ConnectorEidasAttributeRegistry" />
diff --git a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
index 1b5391d5..463bca98 100644
--- a/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
+++ b/modules/authmodule-eIDAS-v2/src/test/resources/SpringTest-context_tasks_test.xml
@@ -24,7 +24,7 @@
<bean id="mvcGUIBuilderImpl"
class="at.gv.egiz.eaaf.core.impl.gui.builder.SpringMvcGuiFormBuilderImpl" />
- <bean id="springManagedSpecificConnectorCommunicationService"
+ <bean id="connectorCommunicationService"
class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
<bean id="dummyPvpConfig"
diff --git a/modules/core_common_webapp/src/main/resources/specific_eIDAS_core_storage.beans.xml b/modules/core_common_webapp/src/main/resources/specific_eIDAS_core_storage.beans.xml
index 259f5605..ca820566 100644
--- a/modules/core_common_webapp/src/main/resources/specific_eIDAS_core_storage.beans.xml
+++ b/modules/core_common_webapp/src/main/resources/specific_eIDAS_core_storage.beans.xml
@@ -11,8 +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="classpath:specificCommunicationDefinitionApplicationContext.xml" />
+ <import resource="classpath:specificCommunicationDefinitionApplicationContext.xml" />
+ <import resource="classpath:jCacheImplSpecificCommunicationBeans.xml" />
<!-- <bean id="SimpleInMemoryTransactionStorage" class="at.asitplus.eidas.specific.connector.storage.SimpleInMemoryTransactionStorage"
/> -->
diff --git a/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
index ac17c30f..a2e2ba03 100644
--- a/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
+++ b/modules/core_commons_eidas/src/main/java/at/asitplus/eidas/specific/modules/core/eidas/EidasConstants.java
@@ -8,6 +8,10 @@ package at.asitplus.eidas.specific.modules.core.eidas;
*/
public class EidasConstants {
+ // references to eIDAS Node implementation
+ public static final String SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE = "connectorCommunicationService";
+ public static final String SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE = "proxyCommunicationService";
+
// common config ore-fixes
public static final String CONIG_PROPS_EIDAS_PREFIX = "auth.eIDAS";
public static final String CONIG_PROPS_EIDAS_NODE = EidasConstants.CONIG_PROPS_EIDAS_PREFIX + ".node_v2";
diff --git a/modules/core_commons_eidas/src/main/resources/eidas_v27_connector.beans.xml b/modules/core_commons_eidas/src/main/resources/eidas_v27_connector.beans.xml
new file mode 100644
index 00000000..fb17b857
--- /dev/null
+++ b/modules/core_commons_eidas/src/main/resources/eidas_v27_connector.beans.xml
@@ -0,0 +1,47 @@
+<?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">
+
+ <!--Connector to specific-->
+ <import resource="classpath:eidas_v2_auth_ref_impl_config.beans.xml" />
+ <import resource="classpath:connectorSpecificCommunicationCaches.xml" />
+
+ <bean id="connectorCommunicationService" class="eu.eidas.specificcommunication.protocol.impl.SpecificCommunicationAdapterService" scope="prototype">
+ <constructor-arg index="0" ref="connectorRequestService"/>
+ <constructor-arg index="1" ref="connectorResponseService"/>
+ </bean>
+
+ <bean id="specificConnectorAttributesFileWithPath"
+ class="java.lang.String">
+ <constructor-arg
+ value="#{specificConnectorConfigRepository}#{specificConnectorAttributesFile}" />
+ </bean>
+
+ <bean id="specificConnectorAdditionalAttributesFileWithPath"
+ class="java.lang.String">
+ <constructor-arg
+ value="#{specificConnectorConfigRepository}#{specificAdditionalAttributesFile}" />
+ </bean>
+
+ <bean id="connectorRequestService" class="eu.eidas.specificcommunication.protocol.impl.RequestSpecificCommunicationServiceImpl" scope="prototype">
+ <constructor-arg index="0" type="java.lang.String" value="${lightToken.connector.request.issuer.name}"/>
+ <constructor-arg index="1" type="java.lang.String" value="${lightToken.connector.request.secret}"/>
+ <constructor-arg index="2" type="java.lang.String" value="${lightToken.connector.request.algorithm}"/>
+ <constructor-arg index="3" ref="specificNodeConnectorRequestCache"/>
+ </bean>
+
+ <bean id="connectorResponseService" class="eu.eidas.specificcommunication.protocol.impl.ResponseSpecificCommunicationServiceImpl" scope="prototype">
+ <constructor-arg index="0" type="java.lang.String" value="${lightToken.connector.response.issuer.name}"/>
+ <constructor-arg index="1" type="java.lang.String" value="${lightToken.connector.response.secret}"/>
+ <constructor-arg index="2" type="java.lang.String" value="${lightToken.connector.response.algorithm}"/>
+ <constructor-arg index="3" ref="nodeSpecificConnectorResponseCache"/>
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/modules/core_commons_eidas/src/main/resources/eidas_v27_proxyservice.beans.xml b/modules/core_commons_eidas/src/main/resources/eidas_v27_proxyservice.beans.xml
new file mode 100644
index 00000000..ea2f5a7d
--- /dev/null
+++ b/modules/core_commons_eidas/src/main/resources/eidas_v27_proxyservice.beans.xml
@@ -0,0 +1,48 @@
+<?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">
+
+ <import resource="classpath:eidas_v2_auth_ref_impl_config.beans.xml" />
+
+ <!-- Proxy to specific-->
+ <import resource="classpath:proxySpecificCommunicationCaches.xml" />
+
+ <bean id="specificConnectorAttributesFileWithPath"
+ class="java.lang.String">
+ <constructor-arg
+ value="#{specificProxyServiceConfigRepository}#{specificConnectorAttributesFile}" />
+ </bean>
+
+ <bean id="specificConnectorAdditionalAttributesFileWithPath"
+ class="java.lang.String">
+ <constructor-arg
+ value="#{specificProxyServiceConfigRepository}#{specificAdditionalAttributesFile}" />
+ </bean>
+
+ <bean id="proxyCommunicationService" class="eu.eidas.specificcommunication.protocol.impl.SpecificCommunicationAdapterService" scope="prototype">
+ <constructor-arg index="0" ref="serviceRequestService"/>
+ <constructor-arg index="1" ref="serviceResponseService"/>
+ </bean>
+
+ <bean id="serviceRequestService" class="eu.eidas.specificcommunication.protocol.impl.RequestSpecificCommunicationServiceImpl" scope="prototype">
+ <constructor-arg index="0" type="java.lang.String" value="${lightToken.proxyservice.request.issuer.name}"/>
+ <constructor-arg index="1" type="java.lang.String" value="${lightToken.proxyservice.request.secret}"/>
+ <constructor-arg index="2" type="java.lang.String" value="${lightToken.proxyservice.request.algorithm}"/>
+ <constructor-arg index="3" ref="nodeSpecificProxyserviceRequestCache"/>
+ </bean>
+
+ <bean id="serviceResponseService" class="eu.eidas.specificcommunication.protocol.impl.ResponseSpecificCommunicationServiceImpl" scope="prototype">
+ <constructor-arg index="0" type="java.lang.String" value="${lightToken.proxyservice.response.issuer.name}"/>
+ <constructor-arg index="1" type="java.lang.String" value="${lightToken.proxyservice.response.secret}"/>
+ <constructor-arg index="2" type="java.lang.String" value="${lightToken.proxyservice.response.algorithm}"/>
+ <constructor-arg index="3" ref="specificNodeProxyserviceResponseCache"/>
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml b/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
index cde9687e..f0038a8e 100644
--- a/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
+++ b/modules/core_commons_eidas/src/main/resources/eidas_v2_auth_ref_impl_config.beans.xml
@@ -10,10 +10,7 @@
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:annotation-config />
-
- <import
- resource="classpath:specificCommunicationDefinitionApplicationContext.xml" />
-
+
<bean id="specificConnectorAttributesFile"
class="java.lang.String">
<constructor-arg value="eidas-attributes.xml" />
@@ -24,16 +21,15 @@
<constructor-arg value="additional-attributes.xml" />
</bean>
- <bean id="specificConnectorAttributesFileWithPath"
- class="java.lang.String">
- <constructor-arg
- value="#{specificConnectorConfigRepository}#{specificConnectorAttributesFile}" />
+ <bean id="customEidasNodeSpringContextProvider"
+ class="eu.eidas.specificcommunication.SpecificCommunicationApplicationContextProvider" />
+
+ <bean id="incomingLightRequestValidator" class="eu.eidas.specificcommunication.protocol.validation.IncomingLightRequestValidator">
+ <constructor-arg index="0" value="${incoming.lightRequest.max.number.characters:65535}"/>
</bean>
- <bean id="specificConnectorAdditionalAttributesFileWithPath"
- class="java.lang.String">
- <constructor-arg
- value="#{specificConnectorConfigRepository}#{specificAdditionalAttributesFile}" />
+ <bean id="incomingLightResponseValidator" class="eu.eidas.specificcommunication.protocol.validation.IncomingLightResponseValidator">
+ <constructor-arg index="0" value="${incoming.lightResponse.max.number.characters:65535}"/>
</bean>
</beans> \ No newline at end of file
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
index 571ad8ab..71f96a76 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/MsProxyServiceSpringResourceProvider.java
@@ -45,11 +45,11 @@ public class MsProxyServiceSpringResourceProvider implements SpringResourceProvi
public Resource[] getResourcesToLoad() {
final ClassPathResource eidasProxyServiceConfig =
new ClassPathResource("/spring/eidas_proxy-service.beans.xml", MsProxyServiceSpringResourceProvider.class);
- final ClassPathResource eidasRefImplConfig = new ClassPathResource("/eidas_v2_auth_ref_impl_config.beans.xml",
- MsProxyServiceSpringResourceProvider.class);
-
-
+ final ClassPathResource eidasRefImplConfig =
+ new ClassPathResource("/eidas_v27_proxyservice.beans.xml",
+ MsProxyServiceSpringResourceProvider.class);
return new Resource[] { eidasProxyServiceConfig, eidasRefImplConfig };
+
}
}
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
index 4de28956..5742b920 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/EidasProxyServiceController.java
@@ -56,7 +56,6 @@ import eu.eidas.auth.commons.light.ILightRequest;
import eu.eidas.auth.commons.light.impl.LightResponse;
import eu.eidas.auth.commons.light.impl.LightResponse.Builder;
import eu.eidas.auth.commons.light.impl.ResponseStatus;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.extern.slf4j.Slf4j;
@@ -121,8 +120,7 @@ public class EidasProxyServiceController extends AbstractController implements I
// read authentication request from shared cache
final SpecificCommunicationService specificProxyCommunicationService =
(SpecificCommunicationService) applicationContext.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE
- .toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
final ILightRequest eidasRequest = specificProxyCommunicationService.getAndRemoveRequest(
tokenBase64,
ImmutableSortedSet.copyOf(attrRegistry.getCoreRegistry().getCoreAttributeRegistry()
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
index bb85f18c..bb91e919 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/protocol/ProxyServiceAuthenticationAction.java
@@ -49,7 +49,6 @@ import eu.eidas.auth.commons.light.impl.LightResponse.Builder;
import eu.eidas.auth.commons.light.impl.ResponseStatus;
import eu.eidas.auth.commons.tx.BinaryLightToken;
import eu.eidas.specificcommunication.BinaryLightTokenHelper;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.extern.slf4j.Slf4j;
@@ -328,8 +327,7 @@ public class ProxyServiceAuthenticationAction implements IAction {
try {
final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE
- .toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
binaryLightToken = springManagedSpecificConnectorCommunicationService.putResponse(lightResponse);
diff --git a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerBorisTest.java b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerBorisTest.java
index 78ae87a5..27fcde7f 100644
--- a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerBorisTest.java
+++ b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerBorisTest.java
@@ -42,7 +42,6 @@ import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyProtocolAuthService;
import eu.eidas.auth.commons.EidasParameterKeys;
import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
import eu.eidas.auth.commons.light.impl.LightRequest;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
@RunWith(SpringJUnit4ClassRunner.class)
@@ -85,8 +84,7 @@ public class EidasProxyServiceControllerBorisTest {
springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE
- .toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
}
diff --git a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerTest.java b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerTest.java
index c23f1d53..47ddcec0 100644
--- a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerTest.java
+++ b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/EidasProxyServiceControllerTest.java
@@ -52,7 +52,6 @@ import eu.eidas.auth.commons.EidasParameterKeys;
import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
import eu.eidas.auth.commons.light.ILightResponse;
import eu.eidas.auth.commons.light.impl.LightRequest;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
@@ -97,8 +96,7 @@ public class EidasProxyServiceControllerTest {
springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE
- .toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
}
diff --git a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/ProxyServiceAuthenticationActionTest.java b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/ProxyServiceAuthenticationActionTest.java
index 333a823e..f9369ac0 100644
--- a/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/ProxyServiceAuthenticationActionTest.java
+++ b/modules/eidas_proxy-sevice/src/test/java/at/asitplus/eidas/specific/modules/msproxyservice/test/protocol/ProxyServiceAuthenticationActionTest.java
@@ -53,7 +53,6 @@ import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
import eu.eidas.auth.commons.light.ILightResponse;
import eu.eidas.auth.commons.light.impl.LightRequest;
import eu.eidas.auth.commons.light.impl.LightRequest.Builder;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.SneakyThrows;
@@ -110,8 +109,7 @@ public class ProxyServiceAuthenticationActionTest {
springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) context.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE
- .toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
}
diff --git a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
index 0b7540f5..313cb9c4 100644
--- a/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
+++ b/modules/eidas_proxy-sevice/src/test/resources/spring/SpringTest-context_basic_test.xml
@@ -13,7 +13,7 @@
<import resource="classpath:/SpringTest-context_authManager.xml" />
<import resource="classpath:/spring/eidas_proxy-service.beans.xml"/>
- <bean id="springManagedSpecificProxyserviceCommunicationService"
+ <bean id="proxyCommunicationService"
class="at.asitplus.eidas.specific.modules.core.eidas.test.dummy.DummySpecificCommunicationService" />
<bean id="mvcGUIBuilderImpl"
diff --git a/ms_specific_connector/src/main/resources/application.properties b/ms_specific_connector/src/main/resources/application.properties
index ed0e6ec9..5a31c119 100644
--- a/ms_specific_connector/src/main/resources/application.properties
+++ b/ms_specific_connector/src/main/resources/application.properties
@@ -111,6 +111,19 @@ eidas.ms.auth.eIDAS.node_v2.loa.requested.minimum=http://eidas.europa.eu/LoA/hig
#eidas.ms.auth.eIDAS.node_v2.loa.ua.requested=http://eidas.europa.eu/NotNotified/LoA/high
+ # TODO change namespaces if required
+lightToken.connector.request.issuer.name=specificCommunicationDefinitionConnectorRequest
+lightToken.connector.request.node.id=specificConnector
+lightToken.connector.request.secret=mySecretConnectorRequest
+lightToken.connector.request.algorithm=SHA-256
+lightToken.connector.response.issuer.name=specificCommunicationDefinitionConnectorResponse
+lightToken.connector.response.node.id=specificConnector
+lightToken.connector.response.secret=mySecretConnectorResponse
+lightToken.connector.response.algorithm=SHA-256
+incoming.lightRequest.max.number.characters=65535
+
+
+
#eidas.ms.auth.eIDAS.szrclient.useTestService=true
#eidas.ms.auth.eIDAS.szrclient.endpoint.prod=
#eidas.ms.auth.eIDAS.szrclient.endpoint.test=http://localhost:1234/demoszr
diff --git a/ms_specific_connector/src/main/resources/environmentContext.xml b/ms_specific_connector/src/main/resources/environmentContext.xml
new file mode 100644
index 00000000..9e90076d
--- /dev/null
+++ b/ms_specific_connector/src/main/resources/environmentContext.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (c) 2023 by European Commission
+ ~
+ ~ Licensed under the EUPL, Version 1.2 or - as soon they will be
+ ~ approved by the European Commission - subsequent versions of the
+ ~ EUPL (the "Licence");
+ ~ You may not use this work except in compliance with the Licence.
+ ~ You may obtain a copy of the Licence at:
+ ~ https://joinup.ec.europa.eu/page/eupl-text-11-12
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the Licence is distributed on an "AS IS" basis,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ ~ implied.
+ ~ See the Licence for the specific language governing permissions and
+ ~ limitations under the Licence.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
+
+ <!--
+
+ Configuration repository path either from ENVIRONMENT variable or COMMAND LINE -D option of
+ EIDAS_CONNECTOR_CONFIG_REPOSITORY and
+ For any other option - like hard-coded values - modify this file.
+ Hard coding example:
+
+ <bean id="specificCommunicationConfigRepository" class="java.lang.String">
+ <constructor-arg value="c:/PGM/projects/configEidas/glassfish/" />
+ </bean>
+
+ -->
+
+ <!--mandatory ENV-->
+ <!--exported to: eidas-specific-connector module-->
+ <bean id="specificConnectorConfigRepository" class="java.lang.String">
+ <constructor-arg
+ value="#{ systemProperties['SPECIFIC_CONNECTOR_CONFIG_REPOSITORY'] ?: (systemEnvironment['SPECIFIC_CONNECTOR_CONFIG_REPOSITORY'].endsWith(systemProperties['file.separator']) ? systemEnvironment['SPECIFIC_CONNECTOR_CONFIG_REPOSITORY'] : (systemEnvironment['SPECIFIC_CONNECTOR_CONFIG_REPOSITORY'] + systemProperties['file.separator'])) }"/>
+ </bean>
+
+ <!--exported to: eidas-specific-communication-definition module-->
+ <bean id="specificCommunicationConfigRepository" class="java.lang.String">
+ <constructor-arg
+ value="#{ specificConnectorConfigRepository }"/>
+ </bean>
+
+
+</beans> \ No newline at end of file
diff --git a/ms_specific_connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java b/ms_specific_connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
index 5e7d92b2..02e4ee79 100644
--- a/ms_specific_connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
+++ b/ms_specific_connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
@@ -98,7 +98,6 @@ import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
import eu.eidas.auth.commons.light.ILightRequest;
import eu.eidas.auth.commons.protocol.impl.AuthenticationResponse;
import eu.eidas.auth.commons.tx.BinaryLightToken;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.exception.SpecificCommunicationException;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.SneakyThrows;
@@ -180,8 +179,9 @@ public class FullStartUpAndProcessTest {
+ "../basicConfig/eIDAS/");
System.setProperty("SPECIFIC_CONNECTOR_CONFIG_REPOSITORY", current.substring("file:".length())
+ "../basicConfig/eIDAS/");
- System.setProperty("SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY", current.substring("file:".length())
- + "../basicConfig/eIDAS/");
+
+ //System.setProperty("SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY", current.substring("file:".length())
+ // + "../basicConfig/eIDAS/");
EaafOpenSaml3xInitializer.eaafInitialize();
@@ -648,7 +648,7 @@ public class FullStartUpAndProcessTest {
throws SpecificCommunicationException, URISyntaxException {
final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) wac.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE);
//read request and validate basic properties
ILightRequest req = springManagedSpecificConnectorCommunicationService.getAndRemoveRequest(eidasNodeReqToken,
@@ -687,7 +687,7 @@ public class FullStartUpAndProcessTest {
.subject(RandomStringUtils.randomAlphabetic(10))
.statusCode(statusCode)
.inResponseTo(reqId)
- .subjectNameIdFormat("afaf")
+ .subjectNameIdFormat("urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified")
.levelOfAssurance(loa)
.attributes(attributeMap)
.build();
diff --git a/ms_specific_proxyservice/src/main/resources/application.properties b/ms_specific_proxyservice/src/main/resources/application.properties
index cb55fb2c..d6918a97 100644
--- a/ms_specific_proxyservice/src/main/resources/application.properties
+++ b/ms_specific_proxyservice/src/main/resources/application.properties
@@ -69,6 +69,19 @@ eidas.ms.auth.eIDAS.node_v2.proxy.entityId=ownSpecificProxy
eidas.ms.auth.eIDAS.node_v2.proxy.forward.errors=false
eidas.ms.auth.eIDAS.node_v2.forward.method=POST
+
+ # TODO change namespaces if required
+lightToken.proxyservice.request.issuer.name=specificCommunicationDefinitionConnectorRequest
+lightToken.proxyservice.request.node.id=specificConnector
+lightToken.proxyservice.request.secret=mySecretConnectorRequest
+lightToken.proxyservice.request.algorithm=SHA-256
+lightToken.proxyservice.response.issuer.name=specificCommunicationDefinitionConnectorResponse
+lightToken.proxyservice.response.node.id=specificConnector
+lightToken.proxyservice.response.secret=mySecretConnectorResponse
+lightToken.proxyservice.response.algorithm=SHA-256
+incoming.lightRequest.max.number.characters=65535
+
+
# Mandate configuration
eidas.ms.auth.eIDAS.proxy.mandates.enabled=true
eidas.ms.auth.eIDAS.proxy.mandates.profiles.natural.default=GeneralvollmachtBilateral
diff --git a/ms_specific_proxyservice/src/main/resources/environmentContext.xml b/ms_specific_proxyservice/src/main/resources/environmentContext.xml
new file mode 100644
index 00000000..ccfab8f5
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/resources/environmentContext.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (c) 2023 by European Commission
+ ~
+ ~ Licensed under the EUPL, Version 1.2 or - as soon they will be
+ ~ approved by the European Commission - subsequent versions of the
+ ~ EUPL (the "Licence");
+ ~ You may not use this work except in compliance with the Licence.
+ ~ You may obtain a copy of the Licence at:
+ ~ https://joinup.ec.europa.eu/page/eupl-text-11-12
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the Licence is distributed on an "AS IS" basis,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ ~ implied.
+ ~ See the Licence for the specific language governing permissions and
+ ~ limitations under the Licence.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
+
+ <!--
+
+ Configuration repository path either from ENVIRONMENT variable or COMMAND LINE -D option of
+ EIDAS_CONNECTOR_CONFIG_REPOSITORY and
+ For any other option - like hard-coded values - modify this file.
+ Hard coding example:
+
+ <bean id="specificCommunicationConfigRepository" class="java.lang.String">
+ <constructor-arg value="c:/PGM/projects/configEidas/glassfish/" />
+ </bean>
+
+ -->
+
+ <!--mandatory ENV-->
+
+ <bean id="specificProxyServiceConfigRepository" class="java.lang.String">
+ <constructor-arg
+ value="#{ systemProperties['SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY'] ?: (systemEnvironment['SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY'].endsWith(systemProperties['file.separator']) ? systemEnvironment['SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY'] : (systemEnvironment['SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY'] + systemProperties['file.separator'])) }"/>
+ </bean>
+
+ <!--exported to: eidas-specific-communication-definition module-->
+ <bean id="specificCommunicationConfigRepository" class="java.lang.String">
+ <constructor-arg
+ value="#{ specificProxyServiceConfigRepository }"/>
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java b/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
index 82103095..c86fbd9b 100644
--- a/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
+++ b/ms_specific_proxyservice/src/test/java/at/asitplus/eidas/specific/proxy/test/FullStartUpAndProcessTest.java
@@ -79,7 +79,6 @@ import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;
import eu.eidas.auth.commons.light.ILightResponse;
import eu.eidas.auth.commons.light.impl.LightRequest;
import eu.eidas.auth.commons.tx.BinaryLightToken;
-import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;
import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;
import lombok.SneakyThrows;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -131,8 +130,6 @@ public class FullStartUpAndProcessTest {
//eIDAS Ref. Impl. properties
System.setProperty("EIDAS_CONFIG_REPOSITORY", current.substring("file:".length())
+ "../basicConfig/eIDAS/");
- System.setProperty("SPECIFIC_CONNECTOR_CONFIG_REPOSITORY", current.substring("file:".length())
- + "../basicConfig/eIDAS/");
System.setProperty("SPECIFIC_PROXY_SERVICE_CONFIG_REPOSITORY", current.substring("file:".length())
+ "../basicConfig/eIDAS/");
@@ -339,7 +336,7 @@ public class FullStartUpAndProcessTest {
private void validateEidasLightResponse(String eidasNodeRespToken) {
final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) wac.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE);
ILightResponse lightResp = springManagedSpecificConnectorCommunicationService.getAndRemoveResponse(eidasNodeRespToken,
attrRegistry.getCoreAttributeRegistry().getAttributes());
@@ -469,7 +466,7 @@ public class FullStartUpAndProcessTest {
final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =
(SpecificCommunicationService) wac.getBean(
- SpecificCommunicationDefinitionBeanNames.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE.toString());
+ EidasConstants.SPECIFIC_PROXYSERVICE_COMMUNICATION_SERVICE.toString());
BinaryLightToken token = springManagedSpecificConnectorCommunicationService.putRequest(authnReqBuilder.build());
proxyHttpReq.addParameter(EidasParameterKeys.TOKEN.toString(), Base64Utils.encodeToString(token.getTokenBytes()));
diff --git a/pom.xml b/pom.xml
index ab4974ba..176c572b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
<woodstox-core.version>6.5.0</woodstox-core.version>
- <eidas-ref.version>2.6.0</eidas-ref.version>
+ <eidas-ref.version>2.7.0</eidas-ref.version>
<org.apache.commons-lang3.version>3.13.0</org.apache.commons-lang3.version>
<org.apache.commons-text.version>1.10.0</org.apache.commons-text.version>