package com.rau.evoting.filters; import java.io.IOException; import java.util.ArrayList; 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 com.rau.evoting.beans.TrusteeHomeBean; import com.sun.xml.internal.ws.util.StringUtils; public class SessionTimeOutFilter implements Filter { private String timeOutPage = "Login.xhtml"; private ArrayList<String> trusteeHomeUrls; @Override public void init(FilterConfig arg0) throws ServletException { trusteeHomeUrls = new ArrayList<String>(); trusteeHomeUrls.add("/Evoting/TrusteeElection.xhtml"); } @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; if(trusteeHomeUrls.contains(req.getRequestURI())) { timeOutPage = "TrusteeHome.xhtml"; } else { timeOutPage = "Login.xhtml"; } if(!req.getRequestURI().equals("/Evoting/Login.xhtml") && !req.getRequestURI().equals("/Evoting/") && !req.getRequestURI().equals("/Evoting/TrusteeHome.xhtml") && !req.getRequestURI().equals("/Evoting/DecodeVotes.xhtml") && !req.getRequestURI().equals("/Evoting/MixNode.xhtml")) { if(isSessionInvalid(req)) { System.out.println("Session is invalid"); String timeOutUrl = req.getContextPath() + "/" + timeOutPage; res.sendRedirect(timeOutUrl); return ; } } chain.doFilter(request, response); } public String getTimeOutPage() { return timeOutPage; } public void setTimeOutPage(String timeOutPage) { this.timeOutPage = timeOutPage; } private boolean isSessionInvalid(HttpServletRequest httpServletRequest) { boolean sessionInValid = (httpServletRequest.getRequestedSessionId() != null) && !httpServletRequest.isRequestedSessionIdValid(); //System.out.println(httpServletRequest.isRequestedSessionIdValid()); return sessionInValid; } }