Workflow Docker containers
[sdc/sdc-workflow-designer.git] / workflow / workflow-designer-be / src / main / java / org / onap / sdc / workflow / server / filters / SessionContextFilter.java
1 package org.onap.sdc.workflow.server.filters;
2
3 import static org.onap.sdc.workflow.api.RestConstants.USER_ID_HEADER_PARAM;
4
5 import java.io.IOException;
6 import javax.servlet.Filter;
7 import javax.servlet.FilterChain;
8 import javax.servlet.FilterConfig;
9 import javax.servlet.ServletException;
10 import javax.servlet.ServletRequest;
11 import javax.servlet.ServletResponse;
12 import javax.servlet.http.HttpServletRequest;
13 import org.onap.sdc.workflow.server.config.ZusammenConfig;
14 import org.openecomp.sdc.common.session.SessionContextProvider;
15 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.stereotype.Component;
18
19 @Component
20 public class SessionContextFilter implements Filter {
21
22     private ZusammenConfig zusammenConfig;
23
24     @Autowired
25     public SessionContextFilter(ZusammenConfig zusammenConfig) {
26         this.zusammenConfig = zusammenConfig;
27     }
28
29     @Override
30     public void init(FilterConfig filterConfig) {
31         // not implemented
32     }
33
34     @Override
35     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
36             throws IOException, ServletException {
37         SessionContextProvider contextProvider = SessionContextProviderFactory.getInstance().createInterface();
38
39         try {
40             if (servletRequest instanceof HttpServletRequest) {
41                 contextProvider.create(getUser(servletRequest), getTenant());
42             }
43
44             filterChain.doFilter(servletRequest, servletResponse);
45         } finally {
46             contextProvider.close();
47         }
48     }
49
50     @Override
51     public void destroy() {
52         // not implemented
53     }
54
55     private String getUser(ServletRequest servletRequest) {
56         return "GLOBAL_USER";
57         // TODO: 7/11/2018 get user from header when collaboration will be supported
58                 //((HttpServletRequest) servletRequest).getHeader(USER_ID_HEADER_PARAM);
59     }
60
61     private String getTenant() {
62         return zusammenConfig.getTenant();
63     }
64 }