Add collaboration feature
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / onboarding-rest-war / src / main / java / org / openecomp / server / filters / SessionContextFilter.java
1 package org.openecomp.server.filters;
2
3 import org.openecomp.sdc.common.session.SessionContextProvider;
4 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
5
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 java.io.IOException;
14
15 import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM;
16
17 public class SessionContextFilter implements Filter {
18   @Override
19   public void init(FilterConfig filterConfig) throws ServletException {
20
21   }
22
23   @Override
24   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
25                        FilterChain filterChain) throws IOException, ServletException {
26     SessionContextProvider contextProvider =
27         SessionContextProviderFactory.getInstance().createInterface();
28
29     try {
30       if (servletRequest instanceof HttpServletRequest) {
31         String userName = ((HttpServletRequest) servletRequest).getHeader(USER_ID_HEADER_PARAM);
32         contextProvider.create(userName);
33       }
34
35       filterChain.doFilter(servletRequest, servletResponse);
36     } finally {
37       contextProvider.close();
38     }
39   }
40
41   @Override
42   public void destroy() {
43
44   }
45 }