Я неверно прочитал другое руководство и понял, что правильный способ обработки этого заключается в следующем:
1) Установите токен аутентификации вручную на SecurityContextHolder
UsernamePasswordWithAttributesAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( loadUserByUsername(username), password, authorities );
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
2) Не визуализируйте страницу на этом этапе или используйте директиву forward :.Вы должны использовать директиву redirect:
return "redirect:/accountcreated";
Если вы отобразите страницу, страница будет нормально загружаться, но объект сеанса будет утерян, потому что будет создан новый j_session_id, но он не попадет в браузерmid-request и следующий запрос будут использовать старый j_session_id, теряя новый объект сеанса и аутентификацию.
Использование директивы forward: обойдёт фильтры аутентификации, не очень хорошо.
Но перенаправление:приводит к тому, что обновленная информация о сеансе попадает в браузер.