IS_AUTHENTICATED_FULLY
не является ролью - это предопределенные учетные данные (также называемые «волшебной» строкой), распознаваемые AuthenticatedVoter
, чтобы указать, что вы вошли в систему. Этот избиратель также поддерживает анонимный вход и вход в систему запомнить меня.
Роли обрабатываются RoleVoter, который распознает любое ядро, начинающееся с "ROLE_" (префикс настраивается). Таким образом, hasRole('IS_AUTHENTICATED_FULLY')
не работает, потому что это не роль. @RolesAllowed("IS_AUTHENTICATED_FULLY")
не будет работать по той же причине.
При использовании языка выражений Spring правильное выражение:
@PreAuthorize("isAuthenticated()")
В качестве альтернативы вы можете использовать:
@Secured("IS_AUTHENTICATED_FULLY")
Пользовательские классы не требуются - оба избирателя включены по умолчанию.