Set the session timeout in the web.xml
file:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Put in the session user's name when an user's logged:
session.setAttribute(userName, "userName");
And kill it when an user's logged out:
session.removeAttribute("userName");
Create a filter to validate an user, like this:
public class AuthorizationFilter extends Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
String userName = (String) session.getAttribute("userName");
if (userName == null) {
rejectRedirect();
}
chain.doFilter(request, response);
}
private void rejectRedirect() {
response.sendRedirect("/login.jsp"); // or warning page
}
}
And map this filter in the web.xml
:
<filter>
<filter-name>Authorization Filter</filter-name>
<filter-class>yourpackage.AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Authorization Filter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>