Выбор ответа Middle Spring Security спрашивают часто обновлено
Порядок правил authorizeHttpRequests
Вопрос
Правила: .requestMatchers("/api/**").authenticated(), затем .requestMatchers("/api/admin/**").hasRole("ADMIN"). Что получит обычный вошедший пользователь на /api/admin/users?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Доступ: первое совпавшее /api/ разрешило. Правила проверяются сверху вниз до первого совпадения. /api/ совпадает с /api/admin/users и требует только аутентификации, до правила с ролью дело не доходит.
Варианты ответа
- 403: правило для admin точнее и побеждает
- Доступ: первое совпавшее
/api/**разрешилоправильный ответ - 401: нужна повторная аутентификация
- Ошибку при старте из-за пересечения правил
Разбор
Правила проверяются сверху вниз до первого совпадения. /api/** совпадает с /api/admin/users и требует только аутентификации, до правила с ролью дело не доходит. Узкие правила ставят выше широких. Spring Security 6 ловит некоторые явно недостижимые конфигурации, но этот порядок валиден и просто открывает админку.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.