Во время входа в систему поместите найденный User
объект в сеанс.
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userDAO.find(username, password);
if (user != null) {
request.getSession().setAttribute("user", user);
response.sendRedirect("secured/userpage");
} else {
request.setAttribute("error", "Unknown username/password combo, please try again");
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}
Затем реализуйте Filter
, который просто проверяет присутствие вошедшего в систему пользователя в сеансе.
if (((HttpServletRequest) request).getSession().getAttribute("user") != null) {
chain.doFilter(request, response); // Logged in, so just continue.
} else {
response.sendRedirect("login"); // Not logged in, redirect to login page.
}
Сопоставьте этот фильтр с шаблоном URL-адреса /secured/*
(или с любым другим, чем хотите) и поместите защищенные страницы, например страницу с информацией о пользователе, в ту же папку.
Чтобы выйти из системы, просто наберите session.removeAttribute("user")
или, что более резко, session.invalidate()
.