package fi.otavanopisto.muikku.servlet;
import java.io.IOException;
import javax.inject.Inject;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import fi.otavanopisto.muikku.servlet.ServletObjectsContainer;
@WebFilter (urlPatterns = "/*")
public class ServletObjectsFilter implements Filter {
@Inject
private ServletObjectsContainer servletObjectsContainer;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
if (req instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) req;
servletObjectsContainer.setContextPath(request.getContextPath());
String currentUrl = request.getRequestURL().toString();
String pathInfo = request.getRequestURI();
servletObjectsContainer.setBaseUrl(currentUrl.substring(0, currentUrl.length() - pathInfo.length()) + request.getContextPath());
}
chain.doFilter(req, resp);
}
@Override
public void destroy() {
}
}