Conversation
| .requestMatchers(ADMIN_URLS) | ||
| .hasAuthority(UserRole.ADMIN.name()) | ||
| .requestMatchers(SUPPORT_URLS) | ||
| .hasAuthority(UserRole.SUPPORT.name())) |
There was a problem hiding this comment.
По условию ДЗ нужно, чтобы у пользователя была РОЛЬ. Здесь устанавливается авторити, а это не совсем тоже самое. Используй вместо hasAuthority, authority методы hasRole, role и т.п.
Если же хочешь оставить именно такой вызов, то должны быть ROLE_SUPPORT, ROLE_ADMIN
There was a problem hiding this comment.
настолько ли принципиально добавлять приставку ROLE_ к ролям, если они и так находятся в классе, отвечающем за хранение ролей?
There was a problem hiding this comment.
Принципиально, потому что без этой приставки ты имеешь просто авторити, а не роль.
Указывая hasAuthority("ADMIN"), ты говоришь спрингу "Найди авторити пользователя ADMIN"
Указывая hasRole("ADMIN"), ты говоришь спрингу "Найди авторити пользователя ROLE_ADMIN"
Да, в твоем случае все будет работать нормально, но таким образом ты создаешь разночтения, ты смешиваешь понятия роли и авторити, что может привести к ошибкам.
There was a problem hiding this comment.
Понял. Исправить нейминги еще можно?
Студент: Аптуликсанов Руслан Германович
Преподаватель: Никита Иванов
Реализовать приложение с разделением прав доступа с использованием аннотации javax.annotation.security.RolesAllowed. АПИ:
Все приватные АПИ должны возвращать имя и роль пользователя
Хранение пользователей в памяти приложения (использование InMemoryUserDetailsManager)
Для хеширования паролей использовать BCryptPasswordEncoder
Basic аутентификация