diff options
author | Thomas <> | 2022-08-16 11:21:04 +0200 |
---|---|---|
committer | Thomas <> | 2022-08-16 11:21:04 +0200 |
commit | 72e8da84f3ff8cd36d6f62d0d0690ad3f9a19efd (patch) | |
tree | 3e5dfe6bf683db79df055dbe603c64575a481f2c /modules/eidas_proxy-sevice/src/main | |
parent | ca50cb8dda0a24b5a4589db126bfab8d0d885b00 (diff) | |
download | National_eIDAS_Gateway-72e8da84f3ff8cd36d6f62d0d0690ad3f9a19efd.tar.gz National_eIDAS_Gateway-72e8da84f3ff8cd36d6f62d0d0690ad3f9a19efd.tar.bz2 National_eIDAS_Gateway-72e8da84f3ff8cd36d6f62d0d0690ad3f9a19efd.zip |
chore(core): check if custom attribute-handler implementations are available on start-up
Diffstat (limited to 'modules/eidas_proxy-sevice/src/main')
4 files changed, 44 insertions, 0 deletions
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/EJusticePersonRoleHandler.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/EJusticePersonRoleHandler.java new file mode 100644 index 00000000..f42a7172 --- /dev/null +++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/EJusticePersonRoleHandler.java @@ -0,0 +1,13 @@ +package at.asitplus.eidas.specific.modules.msproxyservice.handler; + +/** + * Attribute handling to integrate BORIS attributes without full IDA support for sector-specific attributes. + * + * <p>This attribute-handler maps a specific mandate-profile to an eIDAS attribute.</p> + * + * @author tlenz + * + */ +public class EJusticePersonRoleHandler implements IEidasAttributeHandler { + +} diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java new file mode 100644 index 00000000..153cf262 --- /dev/null +++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java @@ -0,0 +1,13 @@ +package at.asitplus.eidas.specific.modules.msproxyservice.handler; + +/** + * Handlers for attribute-processing that requires more features than a simple mapping. + * + * @author tlenz + * + */ +public interface IEidasAttributeHandler { + + + +} diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/service/ProxyEidasAttributeRegistry.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/service/ProxyEidasAttributeRegistry.java index a0c99019..747c808c 100644 --- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/service/ProxyEidasAttributeRegistry.java +++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/service/ProxyEidasAttributeRegistry.java @@ -17,6 +17,7 @@ import javax.annotation.PostConstruct; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; @@ -27,6 +28,7 @@ import com.google.common.collect.Sets; import at.asitplus.eidas.specific.modules.core.eidas.service.EidasAttributeRegistry; import at.asitplus.eidas.specific.modules.msproxyservice.MsProxyServiceConstants; import at.asitplus.eidas.specific.modules.msproxyservice.dto.attributes.AttrMappingElement; +import at.asitplus.eidas.specific.modules.msproxyservice.handler.IEidasAttributeHandler; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException; import at.gv.egiz.eaaf.core.impl.utils.FileUtils; @@ -41,6 +43,7 @@ public class ProxyEidasAttributeRegistry { private static ObjectMapper mapper = new ObjectMapper(); + @Autowired ApplicationContext context; @Autowired IConfiguration basicConfig; @Autowired ResourceLoader resourceLoader; @@ -204,6 +207,18 @@ public class ProxyEidasAttributeRegistry { if (StringUtils.isNotEmpty(el.getEidasAttributeName())) { if (ATTR_CONFIG_ALL.equals(el.getEidasAttributeName()) || coreRegistry.getCoreAttributeRegistry().getByName(el.getEidasAttributeName()) != null) { + + // check if custom attribute-handler implementation is available + if (StringUtils.isNotEmpty(el.getSpecificAttributeHandlerClass())) { + try { + context.getBean(el.getSpecificAttributeHandlerClass(), IEidasAttributeHandler.class); + + } catch (Exception e) { + log.error("No custom attribute-handler implementation for: {}", el.getSpecificAttributeHandlerClass(), e); + return false; + } + } + return true; } else { diff --git a/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml b/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml index 78b7640a..38bd44da 100644 --- a/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml +++ b/modules/eidas_proxy-sevice/src/main/resources/spring/eidas_proxy-service.beans.xml @@ -35,4 +35,7 @@ <bean id="proxyAttributeRegistry" class="at.asitplus.eidas.specific.modules.msproxyservice.service.ProxyEidasAttributeRegistry" /> + <bean id="at.asitplus.eidas.specific.modules.msproxyservice.handler.EJusticePersonRoleHandler" + class="at.asitplus.eidas.specific.modules.msproxyservice.handler.EJusticePersonRoleHandler" /> + </beans>
\ No newline at end of file |