public class UserSessionFilter implements Filter {
protected FilterConfig filterConfig;
private String redirectPage;
public void init(FilterConfig config) {
filterConfig = config;
redirectPage = config.getInitParameter(
Constants.REDIRECT);
}
public void destroy() {
filterConfig = null;
}
private boolean check(ServletRequest request, ServletResponse response) throws
IOException, ServletException {
boolean result = false;
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession(false);
if (session != null) {
Object object = session.getAttribute(Constants.USER_KEY);
if (object != null) {
result = true;
}
}
if (redirectPage.equals(req.getServletPath())) {
result = true;
}
return result;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException,
ServletException {
if (check(request, response)) {
chain.doFilter(request, response);
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect(redirectPage);
}
}
}
web.xml
web.xml<filter>
<filter-name>User Session Filter</filter-name>
<filter-class>com.realcampaign.manager.filters.UserSessionFilter</filter-class>
<init-param>
<param-name>redirect</param-name>
<param-value>/login.vm</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>User Session Filter</filter-name>
<url-pattern>*.vm</url-pattern>
</filter-mapping>