From 461f656337ebe51a6c13be0521c1742384d220d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=A4rki?= Date: Tue, 22 Dec 2015 09:34:47 +0100 Subject: [PATCH] ATEST-224 --- .../daq/queryrest/config/QueryRestConfig.java | 18 ++++++++++++++++++ .../psi/daq/queryrest/filter/CorsFilter.java | 10 ++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/ch/psi/daq/queryrest/config/QueryRestConfig.java b/src/main/java/ch/psi/daq/queryrest/config/QueryRestConfig.java index e6cbd43..056bb54 100644 --- a/src/main/java/ch/psi/daq/queryrest/config/QueryRestConfig.java +++ b/src/main/java/ch/psi/daq/queryrest/config/QueryRestConfig.java @@ -55,6 +55,8 @@ public class QueryRestConfig extends WebMvcConfigurerAdapter { private static final String QUERYREST_DEFAULT_RESPONSE_AGGREGATIONS = "queryrest.default.response.aggregations"; private static final String QUERYREST_DEFAULT_RESPONSE_FIELDS = "queryrest.default.response.fields"; + private static final String QUERYREST_CORS_ALLOWEDORIGINS = "queryrest.cors.allowedorigins"; + private static final String QUERYREST_CORS_FORCEALLHEADERS = "queryrest.cors.forceallheaders"; // a nested configuration // this guarantees that the ordering of the properties file is as expected @@ -69,6 +71,8 @@ public class QueryRestConfig extends WebMvcConfigurerAdapter { public static final String BEAN_NAME_DEFAULT_RESPONSE_FIELDS = "defaultResponseFields"; public static final String BEAN_NAME_DEFAULT_RESPONSE_AGGREGATIONS = "defaultResponseAggregations"; + public static final String BEAN_NAME_CORS_ALLOWEDORIGINS = "corsAllowedorigins"; + public static final String BEAN_NAME_CORS_FORCEALLHEADERS = "corsForceallheaders"; @Resource private Environment env; @@ -181,4 +185,18 @@ public class QueryRestConfig extends WebMvcConfigurerAdapter { public Filter corsFilter() { return new CorsFilter(); } + + @Bean(name = BEAN_NAME_CORS_ALLOWEDORIGINS) + public String configuredOrigins(){ + String value = env.getProperty(QUERYREST_CORS_ALLOWEDORIGINS, "http://localhost:8080, *"); + LOGGER.debug("Load '{}={}'", QUERYREST_CORS_ALLOWEDORIGINS, value); + return value; + } + + @Bean(name = BEAN_NAME_CORS_FORCEALLHEADERS) + public Boolean forceAllHeaders(){ + Boolean value = env.getProperty(QUERYREST_CORS_FORCEALLHEADERS, Boolean.class, true); + LOGGER.debug("Load '{}={}'", QUERYREST_CORS_FORCEALLHEADERS, value); + return value; + } } diff --git a/src/main/java/ch/psi/daq/queryrest/filter/CorsFilter.java b/src/main/java/ch/psi/daq/queryrest/filter/CorsFilter.java index 964f242..017d202 100644 --- a/src/main/java/ch/psi/daq/queryrest/filter/CorsFilter.java +++ b/src/main/java/ch/psi/daq/queryrest/filter/CorsFilter.java @@ -6,23 +6,25 @@ import java.util.Set; import java.util.stream.Collectors; import javax.annotation.PostConstruct; +import javax.annotation.Resource; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Value; import org.springframework.web.filter.OncePerRequestFilter; +import ch.psi.daq.queryrest.config.QueryRestConfig; + public class CorsFilter extends OncePerRequestFilter { private static final String ALLOW_ORIGIN_HEADER = "Access-Control-Allow-Origin"; - @Value("${queryrest.cors.allowedorigins}") + @Resource(name = QueryRestConfig.BEAN_NAME_CORS_ALLOWEDORIGINS) private String configuredOrigins; - @Value("${queryrest.cors.forceallheaders}") - private boolean forceAllHeaders; + @Resource(name = QueryRestConfig.BEAN_NAME_CORS_FORCEALLHEADERS) + private Boolean forceAllHeaders; private Set allowedOrigins;