ATEST-224

This commit is contained in:
Fabian Märki
2015-12-22 09:34:47 +01:00
parent 04583789cb
commit 461f656337
2 changed files with 24 additions and 4 deletions

View File

@ -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;
}
}

View File

@ -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<String> allowedOrigins;