Нам нужно авторизоваться
Итак, у вас уже есть система входа в систему. Поскольку вы уже задаете этот вопрос, это звучит как домашняя система входа в систему, в противном случае вы могли бы просто настроить управляемую контейнером аутентификацию для проверки определенных шаблонов URL для любых зарегистрированных пользователей / ролей.
Вам просто нужно проверять вошедшего в систему пользователя всякий раз, когда запрашиваются конкретные шаблоны URL. Фильтр идеально подходит для этого. Предположим, что ваша домашняя система входа в систему помещает вошедшего в систему пользователя в область действия сеанса, а затем Фильтру просто нужно проверить его наличие:
if (((HttpServletRequest) request).getSession().getAttribute("user") != null) {
chain.doFilter(request, response); // User is present. Just continue request.
} else {
((HttpServletResponse) response).sendError(HttpServletResponse.SC_UNAUTHORIZED); // Error 401.
}
Сопоставьте этот фильтр с web.xml
на url-pattern
, соответствующем запросам, которые вы хотите отфильтровать вошедшему в систему пользователю. Вы даже можете пойти дальше, добавив роль пользователя, и если вошедший в систему пользователь имеет право на просмотр URL-адреса.