Last active
November 16, 2021 14:05
-
-
Save bodrulamin/6ac4e3e633f3f69e88dba71029c2d311 to your computer and use it in GitHub Desktop.
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.example; | |
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.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", "*"); | |
((HttpServletResponse) servletResponse).addHeader("content-type", "*"); | |
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Headers", "*"); | |
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST"); | |
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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment