Spring Security: Spring Security + REST + JWT

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Лучший. Грамотная речь, без слов паразитов, выверенный план лекции. И даже заминка помогает проследить, а как профи ищет ошибку. Спасибо!

MrMadKlaus
Автор

@EnableGlobalMethodSecurity уже устарел, вместо него нужно воспользоваться аннотацией @EnableMethodSecurity, csrf тоже стал deprecated, поэтому заменим его лямбда выражение. Потом еще устарели методы authorizeRequests() и antMatchers() и and(). Итоговый код выглядит вот так :
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
http


.authorizeHttpRequests(authz -> authz



.anyRequest().permitAll())
->
->
//addFilterBefore()
return http.build();

JanSobolewski
Автор

Спасибо большое вам за ваши лекции, все очень доходчиво и понятно. Узнал про вас в ГБ, жаль не удалось побывать у вас на онлайн занятиях.

staroyzakalki
Автор

Spring Security: Spring Security + REST + JWT


00:00 Введение

• Видео объясняет, как использовать джи-ти-токины в спринг секьюрити для защиты приложений.
• Рассматриваются примеры использования и настройки безопасности в рамках работы спринга.

01:52 Создание проекта

• Создание проекта с использованием спринга, GPS, H2 базы данных, ломбака и флай эмиграйшн.
• Настройка проекта и добавление зависимостей.

06:37 Настройка контроллеров и сущностей

• Создание контроллеров и сущностей для работы с пользователями и ролями.
• Настройка гет-мапингов и сущностей для доступа к данным.

14:29 Репозитории и интерфейсы

• Создание репозиториев для работы с ролями и пользователями.
• Создание интерфейсов для работы с ролями и пользователями.

15:29 Создание сущностей и репозиториев

• Создание сущностей и репозиториев для работы с пользователями и ролями.
• Использование аннотаций для создания сущностей и репозиториев.

19:29 Создание сервиса и методов

• Создание юзер-сервиса для работы с пользователями и ролями.
• Реализация методов для поиска пользователей, создания новых пользователей и преобразования пользователей к виду, понимаемому Spring Security.

26:25 Конфигурация безопасности

• Создание пакета конфиг-конфигурации и настройка конфигурации безопасности.
• Использование аннотаций и бинов для настройки правил безопасности, хранения паролей и использования юзер-сервиса.
• Создание бина для настройки анти-кейшн провайдера и юзер-сервиса.

31:21 Безопасность в REST

• В REST нет сессий, поэтому безопасность основана на токенах.
• Токен содержит информацию о пользователе, его роли и подписывается секретным ключом.
• Токен подшивается к каждому запросу и проверяется на бэкенде.

42:13 Токен и его структура

• Токен состоит из заголовка, полезной нагрузки и подписи.
• Заголовок кодируется с помощью алгоритма, полезная нагрузка кодируется с помощью другого алгоритма, а подпись формируется с использованием секретного ключа.
• Токен может быть расшифрован, но не подменен.

46:13 Создание утилиты для работы с токенами

• Создание класса, который будет отвечать за работу с токенами, и инжектирование значений в его поля.
• Создание методов для формирования токена из пользователя, получения списка ролей из токена и проверки его на корректность.

58:05 Аутентификация пользователя и выдача токена

• Создание контроллера для аутентификации и регистрации пользователей, инжектирование юзер-сервиса и других необходимых компонентов.
• Создание дтошек для передачи данных о пользователе и получения токена.
• Использование аутенти-менеджера для проверки логина и пароля и возврата успешного результата или ошибки аутентификации.
• Создание дтошки для обработки ошибок аутентификации.

01:03:01 Получение токена

• Создание конструктора для получения токена с указанием статуса, сообщения и текущего времени.
• Использование конструктора для формирования токена и его возврата в качестве ответа.

01:09:42 Проверка токена

• Защита токена с помощью подписи, которая не может быть изменена без знания секрета.
• Если подпись изменена, то бэк получает ошибку о том, что токен недействителен.

01:12:27 Создание фильтра безопасности

• Создание фильтра безопасности, который проверяет наличие токена и его корректность.
• Использование утилиты для получения токена из заголовка авторизации.
• Проверка корректности заголовка авторизации и получение имени пользователя из токена.

01:18:23 Работа с токенами и контекстом

• В видео рассказывается о том, как с помощью утилит можно сделать гет-юзернейм и проверить пользователя.
• Если время жизни токена истекло, то в контексте пользователя не будет.
• Если имя пользователя найдено, то проверяется, что в контексте нет других пользователей.
• Если все хорошо, то имя пользователя и список ролей из токена добавляются в контекст.

01:29:15 Регистрация и фильтрация

• В видео демонстрируется регистрация пользователя и фильтрация данных в токене.
• Если пароли не совпадают, то возвращается ошибка.
• Если пользователь уже существует, то запрос отклоняется.
• В общем, автор рекомендует спрятать обработку исключений в аутсервис и использовать глобальный перехват исключений для обработки ошибок.

01:34:15 Создание и использование токена

• Обсуждение использования инкодера для шифрования пароля и его хранения в базе данных.
• Создание и использование токена для аутентификации пользователя.

01:46:22 Регистрация пользователя и использование токена

• Регистрация пользователя с использованием пароля и инкодера.
• Создание токена для пользователя и его использование для аутентификации.

01:50:22 Итоги и обсуждение

• Обсуждение принципов работы с токенами и их использования в проектах на Spring.
• Ответы на вопросы зрителей и приглашение к обсуждению в комментариях.

timullka
Автор

Благодарность 🙏 Лайк - подписка! Как я долго искал этот контент на доступном языке.

jqmtozy
Автор

Как же у вас речь поставлена - разбирался сам с JWT и голова болела, а тут такой подарок! Спасибо за лекцию!

MrMaweer
Автор

вы лучший в аспекте объяснений, продолжайте, пожалуйста и спасибо огромное за ваш труд

fleurdelic
Автор

Спасибо за видео!) Жду продолжения по спрингу😄

KuziaribiiKit
Автор

Огромное спасибо! Самый актуальный мануал по spring security + jwt)

drugsbunny_
Автор

Грамотная речь и дикция, без лишних слов. Всё доходчиво! Очень уважаю Ваш труд. Хотелось бы по больше видео уроков от Вас.

pmiptux
Автор

185 раз смотрю, так и не могу разобраться, что к чему в этом security)))

bnwcdbs
Автор

Спасибо Вам за видео с подробной информацией)

vorova
Автор

Ура! Александр, спасибо! очень долгожданная тема ))

dmitrelkin
Автор

Большое спасибо за видео. Приятно слушать.

Devivl
Автор

Спасибо за урок!
Было бы интересно рассмотреть случай с несколькими методами аутентификации, например - для пользователей через Google учетку, а для администраторов - по паролю. Ну и refreshToken для реализма)

svrd-tech
Автор

Благодарю, за видео. Ждем разбор по микросервисам.

kelevra_
Автор

Прекрасное объяснение для русской аудитории! Внятно и по делу! Спасибо автору за труд👍👍👍

lxdclse
Автор

Спасибо! Сделал закладочку на будущее.Мне до этого далековато. Жду продолжения по основам.

dmitrybaranov
Автор

Очень доступно и все понятно 👌 Было бы здорово еще видео про микросервисы в сочетании spring security и spring gateway 😊

dimabzz
Автор

Лучшее объяснение по теме на русском! Большое спасибо!

tchlwcd