1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-13 01:36:18 +00:00

enable cors

This commit is contained in:
Benjamin Gamard
2018-01-24 15:39:27 +01:00
parent d0646f12e6
commit 9ba49f35ff
5 changed files with 70 additions and 19 deletions

View File

@@ -0,0 +1,47 @@
package com.sismics.util.filter;
import com.sismics.util.EnvironmentUtil;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Filter used to handle CORS requests.
*
* @author bgamard
*/
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) {
// NOP
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
if (EnvironmentUtil.isDevMode() && request.getHeader("origin") != null) {
// Add CORS in dev mode
response.addHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addHeader("Access-Control-Max-Age", "3600");
response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
}
if ("OPTIONS".equals(request.getMethod())) {
// Handle preflight request
response.getWriter().print("{ \"status\": \"ok\" }");
} else {
filterChain.doFilter(req, res);
}
}
@Override
public void destroy() {
// NOP
}
}

View File

@@ -32,7 +32,7 @@ public class RequestContextFilter implements Filter {
private static final Logger log = LoggerFactory.getLogger(RequestContextFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
public void init(FilterConfig filterConfig) {
// Initialize the app directory
if (!filterConfig.getServletContext().getServerInfo().startsWith("Grizzly")) {
EnvironmentUtil.setWebappContext(true);