Достать один и тот же объект AnonymousAuthenticationToken из SecurityContextHolder
Нужно достать один и тот же объект AnonymousAuthenticationToken при каждом запросе к серверу. При первом запросе выполняется следующий код:
AnonymousAuthenticationToken anonymousAuthenticationToken = new AnonymousAuthenticationToken(
key, principal, authorities);
SecurityContextHolder.getContext().setAuthentication(anonymousAuthenticationToken);
SecurityContextHolder.getContext().getAuthentication().setAuthenticated(true);
После выполнения данного кода, в дебаге видно, что в контекст сохранилось. Но при последующем выполнении любого запроса, код
SecurityContextHolder.getContext().getAuthentication()
все равно возаращает "пустой объект" AnonymousAuthenticationToken. Спасибо!
Ответы (1 шт):
Для spring security AnonymousAuthenticationToken не несет в себе информации которую можно получить из SecurityContextHolder.getContext().getAuthentication() Обратите внимание, что нет реальной концептуальной разницы между пользователем, который «анонимно аутентифицирован», и пользователем, не прошедшим аутентификацию. Анонимная проверка подлинности Spring Security просто дает вам более удобный способ настройки атрибутов управления доступом. AnonymousAuthenticationToken несет в себе полезную информацию для AuthenticationTrustResolver isAnonymous(Authentication), для того что бы понять, если вы хотите получить доступ к ресурсу который не требует аунтификации