Вы не можете программно зацепить /j_security_check
. Это ограничение безопасности.
Лучше всего определить первый вход в систему, вручную проверив учетную запись пользователя в HttpSession
и указать ее там, если она отсутствует, а затем выполнить свою задачу. Я опубликовал аналогичный ответ раньше здесь . Вот фрагмент кода фильтра, вам просто нужно сопоставить фильтр с нужным url-pattern
, охватывающим защищенные страницы.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
UserPrincipal user = httpRequest.getUserPrincipal();
HttpSession session = httpRequest.getSession();
if (user != null && session.getAttribute("user") == null) {
session.setAttribute("user", user);
// First-time login. You can do your intercepting thing here.
}
chain.doFilter(request, response);
}