Created
September 10, 2020 22:07
-
-
Save KhanMaytok/87e114fb99703c555d92b6cabf1bbdd5 to your computer and use it in GitHub Desktop.
CORS server filter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.util; | |
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.annotation.WebFilter; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
/** | |
* Servlet Filter implementation class CORSFilter | |
*/ | |
// Enable it for Servlet 3.x implementations | |
/* @ WebFilter(asyncSupported = true, urlPatterns = { "/*" }) */ | |
public class CorsFilter implements Filter { | |
/** | |
* Default constructor. | |
*/ | |
public CorsFilter() { | |
// TODO Auto-generated constructor stub | |
} | |
/** | |
* @see Filter#destroy() | |
*/ | |
public void destroy() { | |
// TODO Auto-generated method stub | |
} | |
/** | |
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) | |
*/ | |
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) | |
throws IOException, ServletException { | |
HttpServletRequest request = (HttpServletRequest) servletRequest; | |
System.out.println("CORSFilter HTTP Request: " + request.getMethod()); | |
// Authorize (allow) all domains to consume the content | |
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Origin", "*"); //Access-Control-Allow-Credentials", "true" | |
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, HEAD"); | |
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Headers", "X-PING-OTHER, Origin, Requested-With, Content-Type, Accept"); | |
HttpServletResponse resp = (HttpServletResponse) servletResponse; | |
// For HTTP OPTIONS verb/method reply with ACCEPTED status code -- per CORS handshake | |
if (request.getMethod().equals("OPTIONS")) { | |
resp.setStatus(HttpServletResponse.SC_ACCEPTED); | |
return; | |
} | |
// pass the request along the filter chain | |
chain.doFilter(request, servletResponse); | |
} | |
/** | |
* @see Filter#init(FilterConfig) | |
*/ | |
public void init(FilterConfig fConfig) throws ServletException { | |
// TODO Auto-generated method stub | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<filter> | |
<filter-name>CorsFilter</filter-name> | |
<filter-class>com.util.CorsFilter</filter-class> | |
</filter> | |
<filter-mapping> | |
<filter-name>CorsFilter</filter-name> | |
<url-pattern>/*</url-pattern> | |
</filter-mapping> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment