Перейти к содержимому

Spring Boot Security: добавляем панель администратора и роли пользователей, ограничиваем доступ

letsCode

0:00 / 0:00

Spring Boot Security: добавляем панель администратора и роли пользователей, ограничиваем доступ

86 325 просмотров · 8 лет назад
letsCode
47,8 тыс. подписчиков
86 325 просмотров · 8 лет назад
Spring Boot Web Application (MVC): Добавляем панель администрирования пользователей и управляем правами доступа пользователей с помощью аннотации hasAuthority из Spring Security. Код из видео: https://github.com/drucoder/sweater/t... В самом начале нам нужно добавить новую роль в список ролей (enum Role) и страницу, отображающую список пользователей нашего приложения. Для этого создадим новый шаблон для списка пользователей. Используем в нем удобный синтаксис для отображения списков через разделитель. Синтаксис этой директивы описан тут: https://freemarker.apache.org/docs/re... Далее добавим ссылку на эту страницу с главной страницы приложения main.ftl. Следующим этапом добавляем шаблон для редактирования пользователя, где доступными для редактирования сделаны поля username и roles (доступный в виде списка чекбоксов). В редакторе пользователя для вывода ролей используем функции seq_contains: https://freemarker.apache.org/docs/re... После этого создаем новый контроллер UserController и прописываем в нем эндпойнты для отображения списка пользователей, формы редактирования пользователя и обработки изменённых данных пользователя. Теперь для любого авторизованного пользователя доступен список всех пользователей и возможность изменения их имени и списка ролей. Значит следующим логичным шагом будет ограничение прав. После добавления одному из пользователей роли ADMIN добавляем на UserController аннотацию @PreAuthorize("hasAuthority('ADMIN')") Которая ограничит доступ к панели администратора и оставит его только для пользователей с ролью ADMIN. Но эта аннотация не будет работать до добавления конфигурационной аннотации @EnableGlobalMethodSecurity(prePostEnabled = true) На класс конфигурации WebSecurityConfig Документация по Freemarker: https://freemarker.apache.org/docs/in... Документация по языку выражений Spring Security, определяющих доступ https://docs.spring.io/spring-securit... ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Твиттер:   / letscodedru   ➡ Чат в Discord:   / discord   ➡ Группа Вконтакте: https://vk.com/letscodedru ➡ Канал в Telegram: https://t.me/letsCode_dru ➡ Чат в Telegram: https://t.me/joinchat/FeiP9xEhqHajfqh... ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Поддержать проект: ➡ Patreon   / letscodedru   ➡ Яндекс.Деньги https://money.yandex.ru/to/4100145167... ➡ PayPal paypal.me/letscodedru ➡ Qiwi https://qiwi.me/letscode ➡ WebMoney/BitCoin https://funding.webmoney.ru/d/drucoder ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Ссылка на плейлист:    • Spring Boot 2   Ссылка на канал:    / @letscodedru   Ссылка на Яндекс.Дзен: https://zen.yandex.ru/media/id/5ac209...