Spring Безопасность: разница между ROLE_ANONYMOUS и IS_AUTHENTICATED_ANOYMOUSLY

В Spring Безопасность Какая разница между ROLE_ANONYMOUS и IS_AUTHENTICATED_ANONYMOUSLY.

Другими словами, как отличаются RoleVoter и AuthenticatedVoter?

Ответ 1

В соответствующем разделе в spring документации по безопасности,

Вы часто увидите ROLE_ANONYMOUS атрибут в вышеупомянутом перехватчике конфигурация заменена на IS_AUTHENTICATED_ANOYMOUSLY, что фактически то же самое, когда определение элементов управления доступом. Это пример использования AuthenticatedVoter, который мы увидим в главе авторизации. Оно использует аутентификацияTrustResolver для обрабатывать эту конкретную конфигурацию атрибут и предоставить доступ к анонимных пользователей. Подход с использованием AuthenticatedVoter больше мощный, поскольку он позволяет вам различать анонимные, помнить-меня и полностью аутентифицировать пользователи. Если вам это не нужно однако, вы можете придерживаться ROLE_ANONYMOUS, который будет обрабатываться Spring Security стандартный RoleVoter.

Кроме того, из комментария Luke о связанной проблеме jira,

Проблема анонимного доступа частично исторические. Анонимные токены были введенный первоначально (т.е. ROLE_ANONYMOUS), который позволит вам использовать "безопасный дефауль", конфигурации с конкретными исключения. На более позднем этапе AuthenticatedVoter был представлен для позволяют различать разные уровни аутентификации - анонимный, помни меня и полностью аутентифицирован (то есть зарегистрирован во время текущей сессии). Я добавлен дополнительный бит анонимному чтобы объяснить, что они являются если вы не нуждаетесь в дополнительном функциональность, предлагаемая AuthenticatedVoter.