1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| package com.elosi.norauto.rejetParebrise.ihm.filtre;
import java.io.IOException;
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class TimeoutFilter implements Filter {
private static final Logger log = Logger.getLogger(TimeoutFilter.class);
private static final String ACCUEIL_PAGE = "../accueil/index.jsf";
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {
if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
HttpServletRequest hRequest = (HttpServletRequest) request;
HttpServletResponse hResponse = (HttpServletResponse) response;
if (checkSession(hRequest)) {
if (hRequest.getSession(false) != null) {
final WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(hRequest.getSession(false).getServletContext());
System.out.println(ac);
if (ac == null) {
//redériger vers la page d'accueil ...
String timeoutUrl = hRequest.getContextPath() + "/" + ACCUEIL_PAGE;
log.info("Session is invalid! redirecting to timeoutpage : {}");
hResponse.sendRedirect(timeoutUrl);
return;
}
}
}
}
filterChain.doFilter(request, response);
}
private boolean checkSession(HttpServletRequest request) {
return request.getRequestedSessionId() != null
&& !request.isRequestedSessionIdValid();
}
public void destroy() {
}
} |
Partager