diff options
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())); @@ -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> |