1 package com;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper;
24 import org.springframework.stereotype.Component;
25
26 import javax.servlet.*;
27 import javax.servlet.http.HttpServletResponse;
28 import java.io.IOException;
29
30
31 @Component
32 public class CORSFilter implements Filter {
33
34 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
35 HttpServletResponse response = (HttpServletResponse) res;
36
37 if(req instanceof SecurityContextHolderAwareRequestWrapper){
38 if(((SecurityContextHolderAwareRequestWrapper) req).getHeaders("Origin") != null && ((SecurityContextHolderAwareRequestWrapper) req).getHeaders("Origin").hasMoreElements()){
39 String origin = ((SecurityContextHolderAwareRequestWrapper) req).getHeaders("Origin").nextElement().toString();
40
41 if(origin.equals("http://localhost:63769") || origin.equals("http://localhost:1000") || origin.equals("http://localhost:1001")){
42 response.setHeader("Access-Control-Allow-Origin", origin);
43 }
44 }
45 }
46
47 response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
48 response.setHeader("Access-Control-Max-Age", "3600");
49 response.setHeader("Access-Control-Allow-Credentials", "true");
50 response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
51 chain.doFilter(req, res);
52 }
53
54 public void init(FilterConfig filterConfig) {}
55
56 public void destroy() {}
57
58 }