aboutsummaryrefslogtreecommitdiff
path: root/connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java')
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java220
1 files changed, 0 insertions, 220 deletions
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java
deleted file mode 100644
index b4d58cdd..00000000
--- a/connector/src/main/java/at/asitplus/eidas/specific/connector/config/StaticResourceConfiguration.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 2019 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, A-SIT, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * This product combines work with different licenses. See the "NOTICE" text
- * file for details on the various modules and licenses.
- * The "NOTICE" text file is part of the distribution. Any derivative works
- * that you distribute must include a readable copy of the "NOTICE" text file.
- */
-
-package at.asitplus.eidas.specific.connector.config;
-
-import java.net.MalformedURLException;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.support.ReloadableResourceBundleMessageSource;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.i18n.CookieLocaleResolver;
-import org.thymeleaf.templateresolver.FileTemplateResolver;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.api.logging.IMessageSourceLocation;
-import at.gv.egiz.eaaf.core.impl.utils.FileUtils;
-
-/**
- * Spring configurator for Web resources.
- *
- * @author tlenz
- *
- */
-@Configuration
-public class StaticResourceConfiguration implements WebMvcConfigurer {
- private static final Logger log = LoggerFactory.getLogger(StaticResourceConfiguration.class);
- private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
- "/"
- };
-
- private static final String DEFAULT_MESSAGE_SOURCE = "classpath:properties/status_messages";
-
- @Autowired
- private IConfiguration basicConfig;
-
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- final String staticResources = basicConfig.getBasicConfiguration(
- MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_STATIC_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- String absPath = FileUtils.makeAbsoluteUrl(staticResources, basicConfig
- .getConfigurationRootDirectory());
- if (!absPath.endsWith("/")) {
- absPath += "/";
- }
-
- registry.addResourceHandler("/static/**").addResourceLocations(absPath);
- log.info("Add Ressourcefolder: " + absPath + " for static Web content");
-
- } else {
- log.debug("No Ressourcefolder for static Web content");
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for static Web content", e);
-
- }
-
- registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
-
- }
-
- /**
- * Get a message source with only internal message properties.
- *
- * @param ressourceLocations List of source-locations
- * @return
- */
- @Bean
- public ReloadableResourceBundleMessageSource internalMessageSource(
- @Autowired(required = false) final List<IMessageSourceLocation> ressourceLocations) {
- final ReloadableResourceBundleMessageSource messageSource =
- new ReloadableResourceBundleMessageSource();
-
- // add default message source
- messageSource.setBasename(DEFAULT_MESSAGE_SOURCE);
-
- if (ressourceLocations != null) {
- // load more message sources
- for (final IMessageSourceLocation el : ressourceLocations) {
- if (el.getMessageSourceLocation() != null) {
- for (final String source : el.getMessageSourceLocation()) {
- messageSource.addBasenames(source);
- log.debug("Add additional messageSources: {}", el.getMessageSourceLocation().toArray());
-
- }
- }
- }
- }
-
- messageSource.setDefaultEncoding("UTF-8");
- return messageSource;
-
- }
-
- /**
- * Get full message source with internal and external message-properties files.
- *
- * @param ressourceLocations List of source-locations
- * @return
- */
- @Bean
- public ReloadableResourceBundleMessageSource messageSource(
- @Autowired(required = false) final List<IMessageSourceLocation> ressourceLocations) {
- final ReloadableResourceBundleMessageSource messageSource =
- new ReloadableResourceBundleMessageSource();
- messageSource.setDefaultEncoding("UTF-8");
- messageSource.setParentMessageSource(internalMessageSource(ressourceLocations));
-
- final String staticResources = basicConfig
- .getBasicConfiguration(MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_PROPERTIES_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- final String absPath =
- FileUtils.makeAbsoluteUrl(staticResources, basicConfig.getConfigurationRootDirectory());
- messageSource.setBasename(absPath);
-
- } else {
- log.debug("No Ressourcefolder for dynamic Web content templates");
-
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for dynamic Web content templates", e);
-
- }
-
- return messageSource;
-
- }
-
- /**
- * Get a i18n resolver based on cookies.
- *
- * @return
- */
- @Bean
- public CookieLocaleResolver localeResolver() {
- final CookieLocaleResolver localeResolver = new CookieLocaleResolver();
- localeResolver.setCookieName("currentLanguage");
- localeResolver.setCookieMaxAge(3600);
- return localeResolver;
-
- }
-
- /**
- * Get a Tyhmeleaf Template-Resolver with external configuration path.
- *
- * @return
- */
- @Bean(name = "templateResolver")
- public FileTemplateResolver templateResolver() {
- final String staticResources = basicConfig
- .getBasicConfiguration(MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_TEMPLATES_PATH);
- try {
- if (StringUtils.isNotEmpty(staticResources)) {
- String absPath =
- FileUtils.makeAbsoluteUrl(staticResources, basicConfig.getConfigurationRootDirectory());
- if (!absPath.endsWith("/")) {
- absPath += "/";
-
- }
-
- if (absPath.startsWith("file:")) {
- absPath = absPath.substring("file:".length());
-
- }
-
- final FileTemplateResolver viewResolver = new FileTemplateResolver();
- viewResolver.setPrefix(absPath);
- viewResolver.setSuffix(".html");
- viewResolver.setTemplateMode("HTML");
- viewResolver.setCacheable(false);
-
- log.info("Add Ressourcefolder: {} for dynamic Web content templates", absPath);
- return viewResolver;
-
- } else {
- log.debug("No Ressourcefolder for dynamic Web content templates");
-
- }
-
- } catch (final MalformedURLException e) {
- log.warn("Can NOT initialize ressourcefolder for dynamic Web content templates", e);
-
- }
-
- throw new RuntimeException("Can NOT initialize HTML template resolver");
-
- }
-}