ATEST-259:

- adding simple CORS filter which includes some standard cors headers
This commit is contained in:
Zellweger Christof Ralf
2015-10-27 18:14:54 +01:00
parent 001e093623
commit 6aa5801491
3 changed files with 54 additions and 1 deletions

View File

@ -9,6 +9,7 @@ import java.util.function.Function;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.Filter;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -41,6 +42,7 @@ import ch.psi.daq.query.model.Query;
import ch.psi.daq.query.model.QueryField; import ch.psi.daq.query.model.QueryField;
import ch.psi.daq.query.model.impl.AbstractQuery; import ch.psi.daq.query.model.impl.AbstractQuery;
import ch.psi.daq.queryrest.controller.validator.QueryValidator; import ch.psi.daq.queryrest.controller.validator.QueryValidator;
import ch.psi.daq.queryrest.filter.SimpleCORSFilter;
import ch.psi.daq.queryrest.model.PropertyFilterMixin; import ch.psi.daq.queryrest.model.PropertyFilterMixin;
import ch.psi.daq.queryrest.response.JsonByteArraySerializer; import ch.psi.daq.queryrest.response.JsonByteArraySerializer;
import ch.psi.daq.queryrest.response.JsonStreamSerializer; import ch.psi.daq.queryrest.response.JsonStreamSerializer;
@ -178,6 +180,11 @@ public class QueryRestConfig extends WebMvcConfigurerAdapter {
public Validator queryValidator() { public Validator queryValidator() {
return new QueryValidator(); return new QueryValidator();
} }
@Bean
public Filter simpleCORSFilter() {
return new SimpleCORSFilter();
}
// ========================================================================================== // ==========================================================================================
// TODO: This is simply for initial / rudimentary testing - remove once further evolved // TODO: This is simply for initial / rudimentary testing - remove once further evolved

View File

@ -0,0 +1,41 @@
package ch.psi.daq.queryrest.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class SimpleCORSFilter implements Filter {
@Value("${queryrest.enableCORS}")
private boolean enableCORS;
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException {
if (enableCORS) {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
"Content-Type, Cache-Control, Accept, Authorization, X-Requested-With");
}
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}

View File

@ -1,4 +1,9 @@
# defines the fields that are included in the response # defines the fields that are included in the response
# if no fields have been specified by the user # if no fields have been specified by the user
queryrest.default.response.fields=channel,pulseId,globalMillis,globalNanos,iocMillis,iocNanos,shape,value queryrest.default.response.fields=channel,pulseId,globalMillis,globalNanos,iocMillis,iocNanos,shape,value
queryrest.default.response.aggregations=min,max,sum
# aggregation which are included in the response by default if aggregation is enabled for a given query
queryrest.default.response.aggregations=min,max,sum
# enables / disables the CORS servlet filter. Adds multiple CORS headers to the response
queryrest.enableCORS=true