Это видео - лучшее что я видел про Spring Security. Два часа, в которых собрана только полезная информация, которую самому можно изучать очень долго. Супер! Спасибо! Теперь нужно еще 2 видео о секьюрности: 1. Про скрещивание авторизации на основе Oauth2 (сторонний сервер) + своя БД. 2. Про цепочки фильтров.
@@EugeneSuleimanov Евгений, скажите пожалуйста. Я делаю спринг мвс проект без boot и ориентируюсь на ваше видео. При реализации с JWT ваши html страницы остались активны?
Полноценное кино 🍿 Блокбастер от Женька. Не представляешь, как ты вовремя с этим видео, второй день пытаюсь разобраться с принципом работы Spring Security
Потрясающее видео по Spring Security. Грамотная, четкая, приятная речь. Чувствуется, что подходишь с душой. Спасибо, Евгений, за труд! Очень круто, что есть такие люди на просторах WWW 🔥 . Пожалуйста, снимай ещё 🙏
посмотрел все внимательно, повторял каждый шаг за Евгением. Итог - приложение работает, я сам ни хрена не понял. Просто чистый лист. АПДЕЙТ! Надо посмотреть несколько раз, раза с третьего заходит как домой. Тема очень сложная как по мне. Спасибо за Ваш труд!
по некоторым видео Евгения, готовлюсь к срезам и собесам, будучи стажером Java, это видео очень классное, плюс также много раз смотрел видео по паттернам, огромное спасибо и низкий поклон Евгений!
Прекрасный материал. Два часа ценнейшей выверенной информации. И тут не только Spring Security, но и еще отличный сборник лучших практик программирования на Java. Больше всего меня поразило, что этот материал записан практически за несколько часов. Одним сплошным потоком. Потрясающе. Спасибо!
Не знаю как и поблагодарить-то кроме лайка с подпиской. Настолько ценный материал. Делаю свой пет проект, чтобы найти первую работу и твой контет не побоюсь так сказать, играет решающую роль!
Наконец-то, заждались уже от Евгения видео. Спасибо, как раз,то что надо, чётко и по делу. Такой вопрос где обещанные видео с собеседованиями? (кроме тех которые уже выложены)
Спасибо за отзыв! 1 собеседование не состоялось, теперь ищу интересного кандидата. Как только будет человек с интересным опытом - запишу и обязательно опубликую.
Спасибо за видео. Как всегда все отлично. 1) В @PreAuthorize лучше не строки прописывать, а из enum Permission брать. Т.к. в будущем, если переименуете, сложно будет по коду искать. А так IDEA через refactor все сама исправит по всему коду. 2) На 1:30:05 - проверку на expiration необязательно делать, т.к. в ParseClaimsJws она уже проверяется 3) И конструкторы лучше тоже через lombok создавать 4) На 1:47:05 я б из контроллера код в authenticate вынес в отдельный сервис. Контроллеры лучше делать меньше
Да через enum брать конечно хорошо, но стандартно - указывая полный путь, очень печально. В противном случае надо еще поплясать с бубном и написать кучу кода.
@@ВолодимирВасилишин-я4ч в классе Role в методе getAuthorities() меняем new SimpleGrantedAuthority(permission.getPermission()) на new SimpleGrantedAuthority(permission.name()) и теперь в классе контроллере можно писать так @PreAuthorize("hasAuthority('PERMISSION_WRITE')")
Евгений, а как теперь связать фронтенд с JWT? С Postman конечно играть прикольно)), но в браузере как-то актуальнее. Куда засунуть токен в постмане - понятно, чтобы получить доступ к страницам. А вот как это все воплощается вне постмана?
@@valdemiros5309 беку все равно, как эти данные буду отправлены. Но, обычно мы просто сохраняем токен в localStorage и через интерцептор добавляем токен в хедеры запросов.
@@EugeneSuleimanov ну так-то понятно, что бэку всеравно)), но тут столкнулся именно с такой задачей - подружить JWT c фронтом и завис... а в сети информации такой практически крупицы...
Отличный видос! Спасибо! Заметил одиин нюанс когда разбирался какую роль играет класс SecurityUser и похоже, что фактически он не нужен. В том плане, что из него используется только статический метод: static UserDetails fromUser(User user) Возможно, стоило его перенести в UserDetailsServiceImpl где он используется а SecurityUser удалить.
Скорее всего тот метод должен был выглядеть как-то так: public static SecurityUser fromUser(User user) { return new SecurityUser( user.getEmail(), user.getPassword(), user.getRole().getAuthorities(), user.getStatus() == Status.ACTIVE); }
Вадим! Автор специально акцентировал, что в данном случае есть кастомный юзер хранимый в БД, а есть юзер который имплементирует User Details. Для новичков это очень важно т.к. возникает путанница с юзерами.
Не мало информации просмотрел на тему spring security и могу однозначно сказать,что Ваша подача информации одна из самых лучших... хотя бы для меня лично,но думаю все с этим согласны! Низкий Вам поклон,добрый человек!
Это было божественно, под конец было ощущение, что все немного быстро(в плане слишком много нового материала на одну минуту ахахаха), но в целом шикарный курс, спасибо вам :) Всем мир
Если не ошибаюсь, то, кажется, вместе return User() в методе fromUser(user: User), вам надо было вернуть SecurityUser(). Разве не для этого мы имплементили в этом классе UserDetails и оверрайдили нужные интерфейсу методы? Не хочу показаться невежливым и т.д. Я только учусь, но, показалось, что тут нарушена логика немного.
Прямо благодарность! (Как раз обвешиваю своё pet приложение для прохождения собеседования. Spring security подъехал just in time : ) ) Всё внедрилось как часики.
Просто супер, огромное спасибо за этот подробнейший разбор достаточно тонкой темы. Вопрос: а какими средствами реализуется Refresh token? Я так понимаю, что сформированный в видео JWT Access token должен жить не долго, а дальше пользователю предоставляется долгосрочный токен, который (исходя из best practice) хранится в БД и может быть легко отозван. Вроде как такой подход обеспечивает наилучшую безопасность в случае кражи Access token'а, так как благодаря своей недолговечности он быстро протухнет, а для повторного его получения нужны credentials. Есть ли готовые средства внутри Spring Security для реализации такого функционала? Спасибо.
Евгений, большое Вам спасибо за видео! Я огромная Ваша поклонница, постоянно Вас смотрю!!! Подскажите, пож-та, если не сложно: в ветке аутентификации с БД у меня не работает дебаг в спринг буте. Я вижу, что дело в классе KeyStore, а именно KeyStoreName = null. Попыталась разобраться - я так понимаю, это настройки ssl. Знаний решить проблему пока не хватает, и я не понимаю, почему у Вас на видео дебаг работает, а у меня нет? Буду благодарна, если ответите!
Привет. Спасибо за видео 1:17:19 1:18:16 оговорки, пейлоад токена не зашифрован, а закодирован и раскодировать содержимое токена может любой. Ключ нужен для того, чтобы убедиться, что пейлоад токена не редактировался. Приватную информацию в пейлоаде такого токена передавать не стоит.
Автору огромное спасибо!!!) Видео очень помогло в первичном погружении в spring security, особенно про jwt, если планируются новые видео, то очень жду, теперь будет проще начать изучение проф литературы Еще не плохо бы было, если автор рассказал/показал примеры с OAuth2.1
И не только его :) docs.spring.io/spring-security/site/docs/5.2.9.RELEASE/reference/html/ Даже порядок глав почти не менялся > www.baeldung.com/learn-spring-security-core-course > th-cam.com/video/tWcqSIQr6Ks/w-d-xo.html > th-cam.com/video/her_7pa0vrg/w-d-xo.html > th-cam.com/video/Of4HFbsPKqk/w-d-xo.html А если вы откроете еще и docs.oracle.com/javase/specs/jls/se17/html/index.html То к 99% курсов будут вопросы. Поэтому мой совет не меняется уже много лет - читайте документацию.
Это видео - лучшее что я видел про Spring Security. Два часа, в которых собрана только полезная информация, которую самому можно изучать очень долго. Супер! Спасибо! Теперь нужно еще 2 видео о секьюрности:
1. Про скрещивание авторизации на основе Oauth2 (сторонний сервер) + своя БД.
2. Про цепочки фильтров.
Спасибо за отзыв :)
@@EugeneSuleimanov Евгений, скажите пожалуйста. Я делаю спринг мвс проект без boot и ориентируюсь на ваше видео. При реализации с JWT ваши html страницы остались активны?
@@astracode7955 обычно, JWT используется для REST API.
Идеальное видео, все что я читала/искала/пробовала 3 месяца собрано вот тут и так компактно и понятно. Тысяча лайков
Спасибо за отзыв :)
ГИГАНТСКОЕ СПАСИБО АВТОРУ. Даже не хочу думать сколько бы времени я потратил, если бы разбирался с этим сам! Спасибо-спасибо-спасибо)
Спасибо за отзыв, рад, что материал оказался полезен.
Полноценное кино 🍿 Блокбастер от Женька. Не представляешь, как ты вовремя с этим видео, второй день пытаюсь разобраться с принципом работы Spring Security
Рад, что материал будет полезным!
Потрясающее видео по Spring Security. Грамотная, четкая, приятная речь. Чувствуется, что подходишь с душой. Спасибо, Евгений, за труд! Очень круто, что есть такие люди на просторах WWW 🔥 . Пожалуйста, снимай ещё 🙏
Большое спасибо за отзыв!
Евгений, огромное спасибо за урок, буду разбираться с jwt
@@Usa-wk1bm спасибо за поддержку!
Мозговой штурм , думаю теперь нужно пойти в документацию и там искать знакомые слова из видео ).Вам дуже дякую
У меня, как у новичка чуть голова не лопнула от объёма))) Буду пересматривать!!! Спасибо, Евгений за работу👍👍👍👍
Спасибо за отзыв! Рад, что материал оказался полезен :)
посмотрел все внимательно, повторял каждый шаг за Евгением. Итог - приложение работает, я сам ни хрена не понял. Просто чистый лист. АПДЕЙТ! Надо посмотреть несколько раз, раза с третьего заходит как домой. Тема очень сложная как по мне. Спасибо за Ваш труд!
Евгений, спасибо, что публикуете такие видеоуроки!
Как всегда очень подробное, четкое и понятное объяснение сложного материала!
Супер!!!
Большое спасибо за отзыв!
Евгений спасибо большое за видео🙏🙏🙏
Спасибо за поддержку!
Просто святой человек)
Спасибо огромное, очень много почерпнул с твоего канала)
по некоторым видео Евгения, готовлюсь к срезам и собесам, будучи стажером Java, это видео очень классное, плюс также много раз смотрел видео по паттернам, огромное спасибо и низкий поклон Евгений!
Большое спасибо за отзыв! Рад, что материал оказался полезен.
благодарю за два тяжелых, но прекрасных часа
Спасибо за отзыв!
Спасибо большое ! Просто бомбический урок. Наконец-то стало яснее как там что в Spring Security/
Спасибо за отзыв!
Прекрасный материал. Два часа ценнейшей выверенной информации. И тут не только Spring Security, но и еще отличный сборник лучших практик программирования на Java. Больше всего меня поразило, что этот материал записан практически за несколько часов. Одним сплошным потоком. Потрясающе. Спасибо!
Это видео - лучшее что я видел про Spring Security.!!! Спасибо за разумное объяснение ! и за ссылку. Благодарен !
Спасибо за отзыв!
Спасибо за видео, лайк сразу же=) с возвращением!
Спасибо!
Воу, с возвращением!
Спасибо :)
Вот покупаешь платные курсы и толком объяснить не могут , а тут в youTube, Евгений объясняет бесплатно. Спасибо, Евгений за то, что вы есть !
Большое спасибо за отзыв :)
Не знаю как и поблагодарить-то кроме лайка с подпиской. Настолько ценный материал. Делаю свой пет проект, чтобы найти первую работу и твой контет не побоюсь так сказать, играет решающую роль!
Спасибо большое! Самое лучшее видео!
Было бы хорошо ещё чтобы где-то рассказали так же про аутентификацию с OAuth2 Google
Большое спасибо за отзыв!
Наконец-то, заждались уже от Евгения видео. Спасибо, как раз,то что надо, чётко и по делу. Такой вопрос где обещанные видео с собеседованиями? (кроме тех которые уже выложены)
Спасибо за отзыв!
1 собеседование не состоялось, теперь ищу интересного кандидата. Как только будет человек с интересным опытом - запишу и обязательно опубликую.
@@EugeneSuleimanov Здраствуйте! С возвращением!
Хочу напомнить за свое собеседование. Надеюсь вы сможете его опубликовать.
шедевр искусства
Спасибо за поддержку!
просто бомба. таймкоды, скорость воспроизведения, выжимка информации. огромное спасибо. то , что нужно
Какой же здоровский видос! Спасибо большое!
Спасибо за отзыв!
Да, вот это видео, очень крутое, конечно, можно возращаться и смотреть опять, благодарю!
Спасибо за отзыв!
не понимаю как такие хорошие люди существуют, спасибо за бесплатный контент
Большое спасибо за отзыв :)
Это самый конструктивный и понятный разбор Spring Security. Спасибо за вашу работу!
Спасибо за видео. Как всегда все отлично.
1) В @PreAuthorize лучше не строки прописывать, а из enum Permission брать. Т.к. в будущем, если переименуете, сложно будет по коду искать. А так IDEA через refactor все сама исправит по всему коду.
2) На 1:30:05 - проверку на expiration необязательно делать, т.к. в ParseClaimsJws она уже проверяется
3) И конструкторы лучше тоже через lombok создавать
4) На 1:47:05 я б из контроллера код в authenticate вынес в отдельный сервис. Контроллеры лучше делать меньше
Да, это более безопасный подход, спасибо!
Да через enum брать конечно хорошо, но стандартно - указывая полный путь, очень печально. В противном случае надо еще поплясать с бубном и написать кучу кода.
а я не могу там enum вписать можешь дать пример
@@tembi470 не верно) нужно всего лишь две строчки кода отредачить) если интересно какие - посмотрите мой коммент в этой же ветке.
@@ВолодимирВасилишин-я4ч в классе Role в методе getAuthorities() меняем new SimpleGrantedAuthority(permission.getPermission()) на new SimpleGrantedAuthority(permission.name()) и теперь в классе контроллере можно писать так @PreAuthorize("hasAuthority('PERMISSION_WRITE')")
Как круто!Посмотрел на одном дыхании как боевик со Стэтхэмом!
Спасибо за отзыв :)
Найкращий відос по Spring Security. Дякую за детальне пояснення!)
Самое понятное видео на ютубе по jwt и security, спасибо Вам большое, очень помогли разобраться в теме токенов
Супер! Объем, форма подачи и темп, то что надо. Евгений, так держать!
Спасибо за отзыв!
Евгений, а как теперь связать фронтенд с JWT? С Postman конечно играть прикольно)), но в браузере как-то актуальнее. Куда засунуть токен в постмане - понятно, чтобы получить доступ к страницам. А вот как это все воплощается вне постмана?
@@valdemiros5309 беку все равно, как эти данные буду отправлены. Но, обычно мы просто сохраняем токен в localStorage и через интерцептор добавляем токен в хедеры запросов.
@@EugeneSuleimanov ну так-то понятно, что бэку всеравно)), но тут столкнулся именно с такой задачей - подружить JWT c фронтом и завис... а в сети информации такой практически крупицы...
Евгений, бесконечная благодарность за видео! Очень выручил перед собеседованием)
Спасибо за отзыв!
Благодарю, потрясающее объяснение, как будто на все случаи жизни
Спасибо за отзыв!
Брат, ты спас меня от большого экзамена😇😎
Рад, что материал оказался полезен. Спасибо за комментарий :)
Спасибо, что не забросил канал!
Спасибо!
@@EugeneSuleimanov Спасибо!
@@EugeneSuleimanov Спасибо!
Евгений, спасибо большое. Очень полезное видео! Спасибо за труды!!!
Спасибо за отзыв!
Отличный видос! Спасибо!
Заметил одиин нюанс когда разбирался какую роль играет класс SecurityUser и похоже, что фактически он не нужен. В том плане, что из него используется только статический метод:
static UserDetails fromUser(User user)
Возможно, стоило его перенести в UserDetailsServiceImpl где он используется а SecurityUser удалить.
Скорее всего тот метод должен был выглядеть как-то так:
public static SecurityUser fromUser(User user) {
return new SecurityUser(
user.getEmail(),
user.getPassword(),
user.getRole().getAuthorities(),
user.getStatus() == Status.ACTIVE);
}
Вадим! Автор специально акцентировал, что в данном случае есть кастомный юзер хранимый в БД, а есть юзер который имплементирует User Details. Для новичков это очень важно т.к. возникает путанница с юзерами.
ПРОСТО СУПЕР! БЛАГОДАРЮ! Было бы просто отвалом, если бы вышло видею как этот сервис законсюмить и правильно работать с токеном на стороне консюмера.
Великолепное видео!
Отличное видео! Ещё бы работу с SPA освятили бы - и была бы абсолютно вся нужная информация!
Полезный ролик, спасибо.
Спасибо за отзыв!
Не мало информации просмотрел на тему spring security и могу однозначно сказать,что Ваша подача информации одна из самых лучших... хотя бы для меня лично,но думаю все с этим согласны! Низкий Вам поклон,добрый человек!
Спасибо за отзыв, рад, что материал оказался полезен!
prosto bez slov, bravo! pojaluysta prodoljaite! Salam iz Kyrgyzstana!
Спасибо :)
Женя огромное спасибо за такое полезное видео! Как всегда все понятно и профессионально!
Спасибо, Максим!
Пока не смотрел,но уже огромное спасибо Евгений.Это одна из тем в spring которую мне нужно лучше понимать.Спасибо
Это было божественно, под конец было ощущение, что все немного быстро(в плане слишком много нового материала на одну минуту ахахаха), но в целом шикарный курс, спасибо вам :) Всем мир
Спасибо за отзыв!
Очень крутой материал, как всегда - спасибо!)
Спасибо за отзыв!
ты смог jwt Авторизацию реализовать?
@@МалышевМаксим-о7е да)
@@engend3405 вопрос, а в базу данных в пароль какой хэш засунул?
Просто каждый раз пишет неверно
Для админа и для юзера
Евгений, спасибо за полезное видео!
Идеально поэтапное объяснение
Спасибо за отзыв!
Огромное спасибо! Подача - топ, всё очень чётко и ясно.
Большое спасибо за отзыв!
Спасибо за видео)
Огромное спасибо за видео! 👍😃
Спасибо за отзыв :)
спасибо что делаешь такие видео с помощью них я нашел работу!!!!
Безгранична благодарность и уважение Вам, Евгений
Большое спасибо за отзыв!
Кращий! Все зрозуміло. Ключовий плюс в тому, що все послідовно, кожен степ пояснюється. Це дуже професійно.
Спасибо за отзыв!
Jun прилетела задача связанная с JWT (spring java) и тут же решение в уведомлении) Так что колокольчик хорошая тема)
Евгений ты реально крутой!
Да, с возвращением! всегда очень полезные видео 👍
Спасибо за отзыв!
Видос бомба! Спасибо!
Спасибо за отзыв!
Спасибо за отличный ролик, на одном дыхании посмотрел!
Опять спринг - супер!
Мега-супер-круто!!! Вы сделали меня счастливее на целый раздел моей работы!!! Огромное спасибо!
Спасибо за отзыв!
Большое спасибо. Много нового для себя подчерпнул.
Крутой обзор, хотелось бы еще про Spring Cloud и архитектуру микросервисов.
Спасибо за отзыв. В планах, но пока сложно со временем, к сожалению.
Прум прум новое видео!
хах)) улыбнулся)
Спасибо, все четко и без лишней шелупони!
Спасибо за отзыв!
Нам нужно обновленное видео по весенней безопасности!!!
И обязательно с интеграцией в микросервисы
Так же будет круто если шрифт в идее будет побольше, чтобы можно было смотреть и с телефона))
Спасибо большое! Очень полезный курс. Хорошо помог, в особенности JWT.
Спасибо за отзыв!
Спасибо большое, Женя, очень интересно, честно :) Смотрю в нерабочее от паттернов время:)
Спасибо за отличный материал!
Спасибо за отзыв!
Очень куртое видео! Будет ли продолжение по OAUTH 2/0 и т.д. по авторизации?
Возможно, как отдельное видео, ещё не думал над этим. Спасибо за отзыв!
Спасибо за видео и подробные пояснения!
Из всего этого не понял только как осуществлять logout при использовании jwt token
Спасибо огромное за видео!
Огромное спасибо, за ваш труд!
Спасибо за отзыв!
Видео материал супер! Спасибо большое!
Спасибо за отзыв!
Спасибо большое, Евгений, видео мне очень помогло!
Спасибо за отзыв :)
Если не ошибаюсь, то, кажется, вместе return User() в методе fromUser(user: User), вам надо было вернуть SecurityUser(). Разве не для этого мы имплементили в этом классе UserDetails и оверрайдили нужные интерфейсу методы?
Не хочу показаться невежливым и т.д. Я только учусь, но, показалось, что тут нарушена логика немного.
это волшебно!
Спасибо за отзыв!
С возвращением, Женя)
Спасибо :)
Отлично! Автору почет и уважуха
Прямо благодарность!
(Как раз обвешиваю своё pet приложение для прохождения собеседования.
Spring security подъехал just in time : ) )
Всё внедрилось как часики.
Спасибо за отзыв!
Ты просто золото. Лайк.
Классное, подробное видео, но к сожалению WebSecurityConfigurerAdapter is deprecated (((
теперь в bean надо заворачивать
Просто супер, огромное спасибо за этот подробнейший разбор достаточно тонкой темы. Вопрос: а какими средствами реализуется Refresh token? Я так понимаю, что сформированный в видео JWT Access token должен жить не долго, а дальше пользователю предоставляется долгосрочный токен, который (исходя из best practice) хранится в БД и может быть легко отозван. Вроде как такой подход обеспечивает наилучшую безопасность в случае кражи Access token'а, так как благодаря своей недолговечности он быстро протухнет, а для повторного его получения нужны credentials. Есть ли готовые средства внутри Spring Security для реализации такого функционала? Спасибо.
спасибо за работу)
Спасибо за отзыв :)
Спасибо! Очень полезно!
Евгений, большое Вам спасибо за видео! Я огромная Ваша поклонница, постоянно Вас смотрю!!! Подскажите, пож-та, если не сложно: в ветке аутентификации с БД у меня не работает дебаг в спринг буте. Я вижу, что дело в классе KeyStore, а именно KeyStoreName = null. Попыталась разобраться - я так понимаю, это настройки ssl. Знаний решить проблему пока не хватает, и я не понимаю, почему у Вас на видео дебаг работает, а у меня нет? Буду благодарна, если ответите!
Привет. Спасибо за видео
1:17:19
1:18:16
оговорки, пейлоад токена не зашифрован, а закодирован и раскодировать содержимое токена может любой. Ключ нужен для того, чтобы убедиться, что пейлоад токена не редактировался. Приватную информацию в пейлоаде такого токена передавать не стоит.
Крутое возвращение!))
Спасибо, Женя :)
"Идет загрузка, загрузка идет, и она, наконец, закончилась")))
Отличное видео!!!
Спасибо за отзыв!
Автору огромное спасибо!!!)
Видео очень помогло в первичном погружении в spring security, особенно про jwt, если планируются новые видео, то очень жду, теперь будет проще начать изучение проф литературы
Еще не плохо бы было, если автор рассказал/показал примеры с OAuth2.1
Спасибо за отзыв! По Oauyj только в планах, к сожалению.
снимите пожалуйста видео об основах многопоточности в java!
Спасибо! Вот это да!
Спасибо за отзыв!
спасибо за видео ))0 оооочень круто и профессионально ))
Спасибо за отзыв :)
Спасибо, всё получилось
Хороший перевод курса от Amigoscode
И не только его :)
docs.spring.io/spring-security/site/docs/5.2.9.RELEASE/reference/html/
Даже порядок глав почти не менялся
> www.baeldung.com/learn-spring-security-core-course
> th-cam.com/video/tWcqSIQr6Ks/w-d-xo.html
> th-cam.com/video/her_7pa0vrg/w-d-xo.html
> th-cam.com/video/Of4HFbsPKqk/w-d-xo.html
А если вы откроете еще и docs.oracle.com/javase/specs/jls/se17/html/index.html
То к 99% курсов будут вопросы.
Поэтому мой совет не меняется уже много лет - читайте документацию.