Основы работы с Spring Security
В данном видео на практических примерах рассмотрены основы работы с Spring Security Framework
00:00:00 Введение
00:03:08 Cоздание шаблона проекта
00:11:46 Интеграция Spring Security
00:15:35 Объяснение Basis Auth
00:18:03 Конфигурация spring security и работа с UserDetailsService (InMemoryUserDetailsManager)
00:26:06 Авторизация с использованием ролей (roles)
00:35:16 Авторизация с использованием прав доступа (authorities)
00:44:00 Использование аннотации @PreAuthorize
00:46:22 Аутентификация с использованием формы ввода (form based authentication)
00:55:58 Аутентификация и авторизация при работе с БД (DaoAuthenticationProvider)
01:16:30 Аутентификация и авторизация с использованием JWT токена
01:52:37 Заключение
Ссылка на github репозиторий:
github.com/proselytear/spring...
Ветки:
STEP1 - шаблон проекта
STEP2 - интеграция Spring Security
STEP3 - работа с InMemoryUserDetailsManager
STEP4 - авторизация с использованием ролей пользователя
STEP5 - авторизация с использованием прав доступа
STEP6 - использование аннотации @PreAuthorize
STEP7 - аутентификация с помощью формы логина (сессии)
STEP8 - аутентификация и авторизация при работе с БД
STEP9 - аутентификация и авторизация с использованием JWT токена
Ссылки:
CSRF: / protection-from-cross-...
Spring Security documentation:
docs.spring.io/spring-securit...
Цикл видео по SpringSecurity от JavaBrains:
• Spring Security Basics
Пікірлер: 412
Пока не смотрел,но уже огромное спасибо Евгений.Это одна из тем в spring которую мне нужно лучше понимать.Спасибо
просто бомба. таймкоды, скорость воспроизведения, выжимка информации. огромное спасибо. то , что нужно
Евгений, спасибо за полезное видео!
Спасибо за отличный ролик, на одном дыхании посмотрел!
Просто святой человек) Спасибо огромное, очень много почерпнул с твоего канала)
Самое понятное видео на ютубе по jwt и security, спасибо Вам большое, очень помогли разобраться в теме токенов
Спасибо большое, Женя, очень интересно, честно :) Смотрю в нерабочее от паттернов время:)
Найкращий відос по Spring Security. Дякую за детальне пояснення!)
Это самый конструктивный и понятный разбор Spring Security. Спасибо за вашу работу!
спасибо что делаешь такие видео с помощью них я нашел работу!!!!
Евгений, спасибо большое. Очень полезное видео! Спасибо за труды!!!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Не знаю как и поблагодарить-то кроме лайка с подпиской. Настолько ценный материал. Делаю свой пет проект, чтобы найти первую работу и твой контет не побоюсь так сказать, играет решающую роль!
Да, с возвращением! всегда очень полезные видео 👍
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо за видео)
Спасибо за видео, лайк сразу же=) с возвращением!
@EugeneSuleimanov
3 жыл бұрын
Спасибо!
Женя огромное спасибо за такое полезное видео! Как всегда все понятно и профессионально!
@EugeneSuleimanov
3 жыл бұрын
Спасибо, Максим!
Прекрасный материал. Два часа ценнейшей выверенной информации. И тут не только Spring Security, но и еще отличный сборник лучших практик программирования на Java. Больше всего меня поразило, что этот материал записан практически за несколько часов. Одним сплошным потоком. Потрясающе. Спасибо!
Большое спасибо. Много нового для себя подчерпнул.
Евгений, спасибо, что публикуете такие видеоуроки! Как всегда очень подробное, четкое и понятное объяснение сложного материала! Супер!!!
@EugeneSuleimanov
11 ай бұрын
Большое спасибо за отзыв!
Это видео - лучшее что я видел про Spring Security. Два часа, в которых собрана только полезная информация, которую самому можно изучать очень долго. Супер! Спасибо! Теперь нужно еще 2 видео о секьюрности: 1. Про скрещивание авторизации на основе Oauth2 (сторонний сервер) + своя БД. 2. Про цепочки фильтров.
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв :)
@astracode7955
2 жыл бұрын
@@EugeneSuleimanov Евгений, скажите пожалуйста. Я делаю спринг мвс проект без boot и ориентируюсь на ваше видео. При реализации с JWT ваши html страницы остались активны?
@EugeneSuleimanov
Жыл бұрын
@@astracode7955 обычно, JWT используется для REST API.
Отлично! Автору почет и уважуха
Благодарю, потрясающее объяснение, как будто на все случаи жизни
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв!
Мозговой штурм , думаю теперь нужно пойти в документацию и там искать знакомые слова из видео ).Вам дуже дякую
Безгранична благодарность и уважение Вам, Евгений
@EugeneSuleimanov
3 жыл бұрын
Большое спасибо за отзыв!
Мега-супер-круто!!! Вы сделали меня счастливее на целый раздел моей работы!!! Огромное спасибо!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо за хорошее видео!
Евгений, бесконечная благодарность за видео! Очень выручил перед собеседованием)
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Спасибо огромное за видео!
Великолепное видео!
ПРОСТО СУПЕР! БЛАГОДАРЮ! Было бы просто отвалом, если бы вышло видею как этот сервис законсюмить и правильно работать с токеном на стороне консюмера.
Это видео - лучшее что я видел про Spring Security.!!! Спасибо за разумное объяснение ! и за ссылку. Благодарен !
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Огромное спасибо! Подача - топ, всё очень чётко и ясно.
@EugeneSuleimanov
11 ай бұрын
Большое спасибо за отзыв!
Безумно полезно!
Какой же здоровский видос! Спасибо большое!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо большое! Очень полезный курс. Хорошо помог, в особенности JWT.
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв!
благодарю за два тяжелых, но прекрасных часа
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Полноценное кино 🍿 Блокбастер от Женька. Не представляешь, как ты вовремя с этим видео, второй день пытаюсь разобраться с принципом работы Spring Security
@EugeneSuleimanov
3 жыл бұрын
Рад, что материал будет полезным!
Огромное спасибо, за ваш труд!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Спасибо большое ! Просто бомбический урок. Наконец-то стало яснее как там что в Spring Security/
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Евгений ты реально крутой!
Спасибо большое, Евгений, видео мне очень помогло!
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв :)
не понимаю как такие хорошие люди существуют, спасибо за бесплатный контент
@EugeneSuleimanov
11 ай бұрын
Большое спасибо за отзыв :)
Спасибо, все четко и без лишней шелупони!
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв!
Огромное спасибо за видео! 👍😃
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв :)
Отличное видео! Ещё бы работу с SPA освятили бы - и была бы абсолютно вся нужная информация!
Супер! Объем, форма подачи и темп, то что надо. Евгений, так держать!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
@valdemiros5309
Жыл бұрын
Евгений, а как теперь связать фронтенд с JWT? С Postman конечно играть прикольно)), но в браузере как-то актуальнее. Куда засунуть токен в постмане - понятно, чтобы получить доступ к страницам. А вот как это все воплощается вне постмана?
@EugeneSuleimanov
Жыл бұрын
@@valdemiros5309 беку все равно, как эти данные буду отправлены. Но, обычно мы просто сохраняем токен в localStorage и через интерцептор добавляем токен в хедеры запросов.
@valdemiros5309
Жыл бұрын
@@EugeneSuleimanov ну так-то понятно, что бэку всеравно)), но тут столкнулся именно с такой задачей - подружить JWT c фронтом и завис... а в сети информации такой практически крупицы...
Воу, с возвращением!
@EugeneSuleimanov
3 жыл бұрын
Спасибо :)
У меня, как у новичка чуть голова не лопнула от объёма))) Буду пересматривать!!! Спасибо, Евгений за работу👍👍👍👍
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв! Рад, что материал оказался полезен :)
Не мало информации просмотрел на тему spring security и могу однозначно сказать,что Ваша подача информации одна из самых лучших... хотя бы для меня лично,но думаю все с этим согласны! Низкий Вам поклон,добрый человек!
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв, рад, что материал оказался полезен!
Неужели ))) Очень ждал )
Большое спасибо, очень полезное видео
Идеальное видео, все что я читала/искала/пробовала 3 месяца собрано вот тут и так компактно и понятно. Тысяча лайков
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв :)
Спасибо за отличный материал!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо )) классное видео.
Ты просто золото. Лайк.
Видео материал супер! Спасибо большое!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Кращий! Все зрозуміло. Ключовий плюс в тому, що все послідовно, кожен степ пояснюється. Це дуже професійно.
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв!
Крутое возвращение!))
@EugeneSuleimanov
3 жыл бұрын
Спасибо, Женя :)
Очень крутой материал, как всегда - спасибо!)
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
@user-no9zt9dh4o
Жыл бұрын
ты смог jwt Авторизацию реализовать?
@engend3405
Жыл бұрын
@@user-no9zt9dh4o да)
@user-no9zt9dh4o
Жыл бұрын
@@engend3405 вопрос, а в базу данных в пароль какой хэш засунул? Просто каждый раз пишет неверно Для админа и для юзера
Опять спринг - супер!
Спасибо большое за видео!)
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо Жень, очень помогло!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв :)
Наконец-то, заждались уже от Евгения видео. Спасибо, как раз,то что надо, чётко и по делу. Такой вопрос где обещанные видео с собеседованиями? (кроме тех которые уже выложены)
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв! 1 собеседование не состоялось, теперь ищу интересного кандидата. Как только будет человек с интересным опытом - запишу и обязательно опубликую.
@maksymmatlo4327
3 жыл бұрын
@@EugeneSuleimanov Здраствуйте! С возвращением! Хочу напомнить за свое собеседование. Надеюсь вы сможете его опубликовать.
спасибо за видео ))0 оооочень круто и профессионально ))
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв :)
Большое спасибо!
Спасибо, всё получилось
prosto bez slov, bravo! pojaluysta prodoljaite! Salam iz Kyrgyzstana!
@EugeneSuleimanov
2 жыл бұрын
Спасибо :)
Как круто!Посмотрел на одном дыхании как боевик со Стэтхэмом!
@EugeneSuleimanov
3 ай бұрын
Спасибо за отзыв :)
Очень Круто!
Прямо благодарность! (Как раз обвешиваю своё pet приложение для прохождения собеседования. Spring security подъехал just in time : ) ) Всё внедрилось как часики.
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Потрясающее видео по Spring Security. Грамотная, четкая, приятная речь. Чувствуется, что подходишь с душой. Спасибо, Евгений, за труд! Очень круто, что есть такие люди на просторах WWW 🔥 . Пожалуйста, снимай ещё 🙏
@EugeneSuleimanov
10 ай бұрын
Большое спасибо за отзыв!
С возвращением, Женя)
@EugeneSuleimanov
3 жыл бұрын
Спасибо :)
спасибо за работу)
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв :)
по некоторым видео Евгения, готовлюсь к срезам и собесам, будучи стажером Java, это видео очень классное, плюс также много раз смотрел видео по паттернам, огромное спасибо и низкий поклон Евгений!
@EugeneSuleimanov
7 ай бұрын
Большое спасибо за отзыв! Рад, что материал оказался полезен.
Да, вот это видео, очень крутое, конечно, можно возращаться и смотреть опять, благодарю!
@EugeneSuleimanov
9 ай бұрын
Спасибо за отзыв!
Полезный ролик, спасибо.
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
ГИГАНТСКОЕ СПАСИБО АВТОРУ. Даже не хочу думать сколько бы времени я потратил, если бы разбирался с этим сам! Спасибо-спасибо-спасибо)
@EugeneSuleimanov
2 ай бұрын
Спасибо за отзыв, рад, что материал оказался полезен.
Это было божественно, под конец было ощущение, что все немного быстро(в плане слишком много нового материала на одну минуту ахахаха), но в целом шикарный курс, спасибо вам :) Всем мир
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв!
Автору огромное спасибо!!!) Видео очень помогло в первичном погружении в spring security, особенно про jwt, если планируются новые видео, то очень жду, теперь будет проще начать изучение проф литературы Еще не плохо бы было, если автор рассказал/показал примеры с OAuth2.1
@EugeneSuleimanov
2 жыл бұрын
Спасибо за отзыв! По Oauyj только в планах, к сожалению.
Спасибо, даже верстальщик бы понял)
Спасибо, все супер!
@EugeneSuleimanov
3 жыл бұрын
Спасибо!
посмотрел все внимательно, повторял каждый шаг за Евгением. Итог - приложение работает, я сам ни хрена не понял. Просто чистый лист. АПДЕЙТ! Надо посмотреть несколько раз, раза с третьего заходит как домой. Тема очень сложная как по мне. Спасибо за Ваш труд!
Spasibo🤝
Идеально поэтапное объяснение
@EugeneSuleimanov
10 ай бұрын
Спасибо за отзыв!
Спасибо!
Видос бомба! Спасибо!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
это волшебно!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Огромное спасибо!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Крутой обзор, хотелось бы еще про Spring Cloud и архитектуру микросервисов.
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв. В планах, но пока сложно со временем, к сожалению.
Прум прум новое видео!
@AndreyDelay
3 жыл бұрын
хах)) улыбнулся)
Jun прилетела задача связанная с JWT (spring java) и тут же решение в уведомлении) Так что колокольчик хорошая тема)
Брат, ты спас меня от большого экзамена😇😎
@EugeneSuleimanov
11 ай бұрын
Рад, что материал оказался полезен. Спасибо за комментарий :)
Отличное видео!!!
@EugeneSuleimanov
Жыл бұрын
Спасибо за отзыв!
Спасибо за видео и подробные пояснения! Из всего этого не понял только как осуществлять logout при использовании jwt token
Спасибо! Вот это да!
@EugeneSuleimanov
3 жыл бұрын
Спасибо за отзыв!
Спасибо большое! Самое лучшее видео! Было бы хорошо ещё чтобы где-то рассказали так же про аутентификацию с OAuth2 Google
@EugeneSuleimanov
9 ай бұрын
Большое спасибо за отзыв!
Спасибо, что не забросил канал!
@EugeneSuleimanov
3 жыл бұрын
Спасибо!
@ascar66
3 жыл бұрын
@@EugeneSuleimanov Спасибо!
@user-qh9mr2qv4b
3 жыл бұрын
@@EugeneSuleimanov Спасибо!
Отличный видос! Спасибо! Заметил одиин нюанс когда разбирался какую роль играет класс SecurityUser и похоже, что фактически он не нужен. В том плане, что из него используется только статический метод: static UserDetails fromUser(User user) Возможно, стоило его перенести в UserDetailsServiceImpl где он используется а SecurityUser удалить.
@yaroslavtarasenko3157
2 жыл бұрын
Скорее всего тот метод должен был выглядеть как-то так: public static SecurityUser fromUser(User user) { return new SecurityUser( user.getEmail(), user.getPassword(), user.getRole().getAuthorities(), user.getStatus() == Status.ACTIVE); }
@user-zm8oi2uf3o
Жыл бұрын
Вадим! Автор специально акцентировал, что в данном случае есть кастомный юзер хранимый в БД, а есть юзер который имплементирует User Details. Для новичков это очень важно т.к. возникает путанница с юзерами.
То что надо
Спасибо за видео. Как всегда все отлично. 1) В @PreAuthorize лучше не строки прописывать, а из enum Permission брать. Т.к. в будущем, если переименуете, сложно будет по коду искать. А так IDEA через refactor все сама исправит по всему коду. 2) На 1:30:05 - проверку на expiration необязательно делать, т.к. в ParseClaimsJws она уже проверяется 3) И конструкторы лучше тоже через lombok создавать 4) На 1:47:05 я б из контроллера код в authenticate вынес в отдельный сервис. Контроллеры лучше делать меньше
@EugeneSuleimanov
3 жыл бұрын
Да, это более безопасный подход, спасибо!
@tembi470
3 жыл бұрын
Да через enum брать конечно хорошо, но стандартно - указывая полный путь, очень печально. В противном случае надо еще поплясать с бубном и написать кучу кода.
@user-xw8co7dp6w
2 жыл бұрын
а я не могу там enum вписать можешь дать пример
@user-bj4qj9vh5u
Жыл бұрын
@@tembi470 не верно) нужно всего лишь две строчки кода отредачить) если интересно какие - посмотрите мой коммент в этой же ветке.
@user-bj4qj9vh5u
Жыл бұрын
@@user-xw8co7dp6w в классе Role в методе getAuthorities() меняем new SimpleGrantedAuthority(permission.getPermission()) на new SimpleGrantedAuthority(permission.name()) и теперь в классе контроллере можно писать так @PreAuthorize("hasAuthority('PERMISSION_WRITE')")