org.onap migration
[vid.git] / vid-app-common / src / main / java / org / onap / vid / controller / filter / TempFilterForCORS.java
1 package org.onap.vid.controller.filter;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.openecomp.portalsdk.core.util.SystemProperties;
5 import org.springframework.web.filter.GenericFilterBean;
6
7 import javax.servlet.FilterChain;
8 import javax.servlet.ServletException;
9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.annotation.WebFilter;
12 import javax.servlet.http.HttpServletResponse;
13 import java.io.IOException;
14
15 @WebFilter(urlPatterns = "/*")
16 public class TempFilterForCORS extends GenericFilterBean {
17
18     private static final String ENV_MODE = "env.mode";
19     private Boolean devMode = null;
20
21      //dev mode is initialized here since @WebFilter doesn't support @Autowired
22     //So we are sure that SystemProperties bean was initialed only after the first call to doFilter
23     private boolean isDevMode() {
24         if (devMode!=null) {
25             return devMode;
26         }
27         else {
28             if (!SystemProperties.containsProperty(ENV_MODE)) {
29                 devMode = Boolean.FALSE;
30                 return devMode;
31             }
32
33             String envMode = SystemProperties.getProperty(ENV_MODE);
34             devMode = StringUtils.equalsIgnoreCase(envMode, "dev") ;
35         }
36         return devMode;
37     }
38
39     @Override
40     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
41
42         if (isDevMode() && response instanceof HttpServletResponse) {
43             ((HttpServletResponse) response).addHeader("Access-Control-Allow-Origin", "http://localhost:3000");
44             ((HttpServletResponse) response).addHeader("Access-Control-Allow-Credentials", "true");
45         }
46         chain.doFilter(request, response);
47     }
48 }