Евгений, 100 тысяч спасибо!!! Именно то, что искала и еще и в Вашей великолепной подаче😁 ну просто 100 из 100!
@EugeneSuleimanov8 ай бұрын
Большое спасибо за отзыв!
@Mr.J248 Жыл бұрын
Для того чтобы хорошо уметь тестировать авторизацию/регистрацию юзера , ее нужно написать ))) сегодня этим и займусь пожалуй )) спасибо Евгений )
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв и удачи :)
@Андрейлупанов-о3н Жыл бұрын
Евгений, огромное спасибо за труды, было очень приятно и полезно смотреть, очень крутой уровень донесения информации! Не сразу все понятно, надо пару раз вдумчиво пересмотреть, но это круто, снимаю шляпу.
@EugeneSuleimanov Жыл бұрын
Спасибо вам за отзыв!
@Anticipant Жыл бұрын
все время удивляюсь вам, спасибо за лучший бесплатный контент по Java и не только!
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв!
@AlexSmile-y2x7 ай бұрын
Суперское видео! Столько информации полезной. Есть несколько вопросов: 1) зачем в ДТО id? Ведь мы работаем с этими id только в нашей системе. И зачем в ДТО enum? Почему не строка? Ведь чем проще типы данных в ДТО, тем проще с ними работать во внешних системах и на клиенте. 2) почему в целом не сделал ДТО иммутабельным? По логике любой ДТО не должен изменяться, а служит лишь для передачи данных. 3) почему в UserEntity hashcode() не по полю username? это поле уникально и обязательно, поэтому было бы логично избежать таким образом возможных проблем рассчета хэша при добавлении полей в будущем(например в случае зацикливания и т.п.), тут такого не предвиделось, но в целом в качестве хорошей практики. 4) почему секретные проперти(пароли, секреты) задаются напрямую, а не через переменные окружения?
@EugeneSuleimanov7 ай бұрын
Спасибо за отзыв и вопросы! 1. ID часто отдают в DTO, enum позволит сразу отсечь некорректные значения. 2. Не всегда удобно для тестирования 3. корректное замечание, можно было сделать и так. 4. Учебный проект, поэтому для удобства работы хардкод.
@mikalaim7690 Жыл бұрын
Большой респект за ваши видео, пожалуйста, продолжайте
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв!
@Devivl Жыл бұрын
Большое спасибо за видео, Евгений! Однозначно must have для всех людей, изучающие Java! Что в ютубе, что в телеграмм канале максимально собранная и четкая речь! Очень приятно читать и слушать.
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@nsandrus Жыл бұрын
Отличная подача материала. Благодарю за урок и потраченное на его создание время.
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв!
@divergenny Жыл бұрын
Ураааа спасибо огромное ))))) Как и просил вас про спринг секьюрити. Вы лучший!)
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@alexshutov5442 Жыл бұрын
пушка. Очень ждал чего-нибудь реактивненького)
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@yaroslavmordvinov622 Жыл бұрын
💣💣💣
@elnar_12065 ай бұрын
Евгений спасибо большое за такой замечательный урок🙏
@EugeneSuleimanov5 ай бұрын
Спасибо за отзыв!
@АндрейСкворцов-з6ш Жыл бұрын
Здоровья тебе! Большое спасибо!
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий и пожелания! Взаимно!
@НикитаАртемьев-щ2ь Жыл бұрын
Уже бьюсь в экстазе от используемых технологий в начале видео) спасибо за прекрасный вечер)
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@alexanderlepekhin9684 Жыл бұрын
Большое спасибо за урок! Очень порадовало увеличение размера шрифта, никто обычно об этом не заботится
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@МаксимСамойлов-р6ф Жыл бұрын
Долгожданное видео!!! Спасибо, Евгений за КАЧЕСТВЕННЫЙ контент👍👍👍
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Максим!
@Serj-ok4pm Жыл бұрын
@@EugeneSuleimanov 0:43
@Serj-ok4pm Жыл бұрын
@@EugeneSuleimanov 😊
@Serj-ok4pm Жыл бұрын
@@EugeneSuleimanov 😊
@Serj-ok4pm Жыл бұрын
@@EugeneSuleimanov 1:19 1:19
@ИльназФатыхов-о6э5 ай бұрын
очень интересный урок. надо пересмотреть еще раз все что было связано с безопасностью) я с первого раза не понял )
@EugeneSuleimanov5 ай бұрын
Спасибо за отзыв!
@СэмФишер-х4д Жыл бұрын
ооо видео по реактивности!афигенно. спасибо! а можно видео по реактивности именно по теории. что это такое, что дает, в общих чертах как устроено
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! По видео - попробую поставить в очередь :)
@kovashgang7110 Жыл бұрын
Супер, не только реактивщина, но и еще куча полезных мелочей. Однозначно топ контент.
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@Amberdance Жыл бұрын
Спасибо за материал! Свежо и актуально (особенно на фоне видео с 3+ летней давности по спрингу), подписка.
Наконец-то актуальное видео на эту тему! Спасибо большое!
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@vladimirkrylov4947 Жыл бұрын
Спасибо Евгений! Отличная подача и содержание. недавно делал авторизацию на реактивщине, но все равно посмотрел видос.
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв!
@Kiberpiest1 Жыл бұрын
Огромное спасибо! Урок супер!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Петя!
@user-lk8n0fgjk Жыл бұрын
Евгений, спасибо за качественный и постоянный контент!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@ИгорьИгорь-к3ы1р Жыл бұрын
Спасибо, очень полезное видео. Чтобы не писать скрипты для базы справа вкладка, в ней удобней и быстрее все делать. Если это скрипт стартовый для создания с нуля, то так же проще через вкладку создать всё таблицы, потом делаем дамп скелета и вставляем куда нужно
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! Flyway надёжнее, ИМХО 😊
@-boiadeiro- Жыл бұрын
Очередное полезное видео, спасибо Евгений!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Семён!
@alexdiz4189 Жыл бұрын
лучшее видео из актуального по данной теме! лайк, подписка
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@webicode Жыл бұрын
Урок супер ! Подача материала класс !
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@dendenovich8460 Жыл бұрын
Огромнейшее спасибо! Что бы я без вас делал!)
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@MgsMen Жыл бұрын
От души❤❤❤ Это прям супер топ🎉🎉🎉🎉
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@РоманКравченко-о4г Жыл бұрын
Евгений, спасибо отличный материал!!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Роман!
@РоманКравченко-о4г Жыл бұрын
@@EugeneSuleimanov Очень хотелось бы увидеть как тестировать такие ресты, создание, валидация токена. Если сделаете такое видео, то будет супер классно, а так отличная работа - моё почтение ))
@EugeneSuleimanov Жыл бұрын
@@РоманКравченко-о4г добавлю в очередь, спасибо за идею!
@igorpavlenkov3658 Жыл бұрын
Видео очень интересное, спасибо!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@alenache1 Жыл бұрын
как всегда 🔥🔥🔥🔥🔥
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@sk-xdv-fre Жыл бұрын
Отличный урок, большое вам спасибо!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@pawsdev Жыл бұрын
Не хватает только refresh token логики, хорошая идея для нового видосика на след год))
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий и предложение :)
@SergeyOreshkin-k7y Жыл бұрын
Привет. Спасибо, было очень полезно. Я у тебя уже не первый раз вижу как ты старательно проверяешь время истечения токена, но это вроде не так работает. там Jwts.parser() упадет с JwtException если токен протух и твоя логика не сработает. А в остальном очень круто!
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий! Обязательно проверю этот момент, спасибо.
@user-wt1hc4hm3t Жыл бұрын
Контент ТОП, ждем продолжения.
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@КонстантинФиленко-и3б Жыл бұрын
Евгений, спасибо за работу, у Вас очень хорошее объяснение и интересный подход. Хотелось бы посмотреть, как построить систему безопасности на spring cloud webflux jwt, потому что на монолитные приложения можно найти примеры, а вот на микросервисные к сожалению нет, да и в принципе на микросервисы почему-то меньше информации.
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! Большой цикл по микросервисам в работе. К сожалению, по срокам не могу сориентировать из-за высокой рабочей загруженности.
@ГлебЛаптев-р9ш Жыл бұрын
Спасибо, полезное очень видео
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@Batyrbala Жыл бұрын
Женя, на высоте,как обычно! Рахмет,сенсей за труды,видно,что потратил время!
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв!
@майклавов Жыл бұрын
Крутой ты мужик , спасибо 🎉
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@iurii-goncharov Жыл бұрын
Спасибо за видео 👍
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@mirnijalexey2765 Жыл бұрын
Спасибо, очень интересно получилось, сделал вместе с тобой!=) Может теперь напилим контроллеров на эту секьюрность?
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :) Это уже не интересно - всегда можно поиграть муже готовым движком :) Следующий этап - прокрутить другие сервисы к этому проекту.
@mirnijalexey2765 Жыл бұрын
@@EugeneSuleimanov новые сервисы это отлично, будешь видео делать?
@EugeneSuleimanov Жыл бұрын
@@mirnijalexey2765 планирую.
@102hem Жыл бұрын
Как всегда топ контент без воды спасибо! Только вопрос возник, а что там на продакшене с паролем, хоть и рест метод пост приходит разве это будет считаться безопасным? или может на фронте должен кодироваться?
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! https обеспечивает безопасность передачи данных.
@andydrummer6310 Жыл бұрын
Спасибо за видео. Вопрос такой, можно в двух словах объяснить для чего здесь реактивность применена и вообще какой у нее практический смысл?
@EugeneSuleimanov11 ай бұрын
Спасибо за отзыв! Производительность и стиль разработки.
@vadympylypchenko5801 Жыл бұрын
Спасибо большое за качетвенный контент без "воды". Как много реактивного программирования используеться в реальных проектах?
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! В моём опыте - крайне много. За последние 3 года все проекты были на «реактивщине».
@vadympylypchenko5801 Жыл бұрын
@@EugeneSuleimanov Спасибо, ого не неожиданно.
@EugeneSuleimanov Жыл бұрын
@@vadympylypchenko5801 но это точно мой опыт.
@oldjohn1503 Жыл бұрын
Золото просто!)
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@pawsdev Жыл бұрын
Очень круто!!!!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@stanferrari455014 күн бұрын
Круто, но почему не использовать аутентификацию уже в системе на основе sso через waffle и обычные negotaitedFilters если у нас там уже к примеру kerberos под капотом
@alexshutov5442 Жыл бұрын
Давай прикрутим кафку и ELK =) А то спрашивают много, а понимания мало)
@EugeneSuleimanov Жыл бұрын
Можно попробовать :)
@kalivanich Жыл бұрын
Спасибо, супер!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@baxiskerimzade2690 Жыл бұрын
Супер) Спасибо
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@kalivanich Жыл бұрын
Лучший на ютубе!)
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@alexey1930 Жыл бұрын
Спасибо.
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@ВасильМихальчук-ж7т Жыл бұрын
Неймовірно😮
@EugeneSuleimanov Жыл бұрын
Докую за відгук!
@crazym8nd9 ай бұрын
Я делал по этому гайду приложение,сначала у меня не завелось, потому, что важно при использвоании lombok и mapstruct, чтобы зависимости ломбока стояли первыми
@jollyroger2757 Жыл бұрын
Gradle мне кажется лучше поднимать обращаясь к объекту wrapper и в клоужер уже указать gradleVersion='8.0.1' .
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий! Да, конечно через задачу является рекомендуемой практикой, но ручной вариант описан в документации. docs.gradle.org/current/userguide/gradle_wrapper.html#:~:text=One%20way%20to%20upgrade%20the,in%20Adding%20the%20Gradle%20Wrapper.
@jollyroger2757 Жыл бұрын
@@EugeneSuleimanov забыл добавить - видео как всегда на высоте
@EugeneSuleimanov Жыл бұрын
@@jollyroger2757 спасибо :)
@divergenny Жыл бұрын
А webflux и boot это разное получается ?) Или спринг секьюрити и там и там работает одинаково ? Просил вас видео про спринг буут и спринг секьюрити в новом формате показать, видео старое переделать )
@EugeneSuleimanov Жыл бұрын
Да, spring boot может не использовать реактивщину. Это просто удобный Фреймворк для быстрого старта приложения с рядом преимуществ. Концепция немного другая, если мы говорим про reactive, но суть та же.
@mendalau3515 Жыл бұрын
А что такое секреты (secret), которые мы используем для кодирования пароля и генерации токена, и где их брать/генерировать, чтобы они были валидные. Спасибо большое за видео!
@EugeneSuleimanov Жыл бұрын
Зависит от формата, на этом сайте есть ряд форматов: randomkeygen.com/ Спасибо за отзыв!
@Az1zdev Жыл бұрын
👍👍👍
@grigorev.nikita Жыл бұрын
Евгений, спасибо за такой контент на русском!
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@ГлебВалерьевич-у6ы Жыл бұрын
Топ как всегда !
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@zhaslanq Жыл бұрын
Четко
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@VladikBezsmertnyi Жыл бұрын
Прикольно
@slava_blin Жыл бұрын
Класс! Спасибо за видео, хорошо структурирует знания, а так же много нового и интересного подчерпнул. Есть кейс: хочу настроить securityWebFilterChain таким образом, чтобы все пути было открыты, а на один конкретный путь срабатывал фильтр. Я могу заменить publicRoutes на “/**” и где-то указать тот путь, который надо прогонять через фильтр?
@EugeneSuleimanov Жыл бұрын
Большое спасибо за отзыв! Да, должно отработать по документации.
@alevadnaya Жыл бұрын
Евгений, супер, спасиьо огромное! Несколько вопросов, если позволите. 1. Сервис, где вы размещаете статьи, доступен под vpn? У меня из РФ не открываются ваши статьи. 2. По проекту. Как с наименьшими усилиями прикрутить к проекту ui или swagger? 3. Если использовать не postgres в качестве БД, а другую реляционную, не должно быть принципиальных изменений?
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! 1. Да, под VPN доступен - ограничения провайдера 2. Написать любой клиент под этот АПИ (ангуляр или реакт).
@OJIeLLlka Жыл бұрын
Подскажите плиз, почему во вложенном классе VerificationResults поля публичные, и мы к ним обращаемся без геттеров, напрямую? 56:25
@EugeneSuleimanov Жыл бұрын
Для удобства работы. Такой подход часто применяется для вложенных классов. Особенно на уровне DTO.
@OJIeLLlka Жыл бұрын
@@EugeneSuleimanov спасибо!
@kalivanich Жыл бұрын
Запустите курс по обучению, я полагаю будет очень востребованный от вашего авторства
@EugeneSuleimanov Жыл бұрын
По моему опыту - все курсы заканчиваются одинаково - скатывание в «г#%#нокурсы» для заработка. Поэтому работаю только через менторинг. На данный момент, я не нашёл способа масштабирования без существенного падения качества, к сожалению. И спасибо за комментарий!
@БогданСидоренко-о6ы Жыл бұрын
Подскажите, пожалуйста, как сюда прикрутить Role based control с аноташками по типу @PreAuthorized, или как-то по другому? Второй день мучаюсь(
@БогданСидоренко-о6ы Жыл бұрын
Помогите, плиз, хоть каким-то способом сюда Role based control внедрить
@pawsdev Жыл бұрын
Хотелось бы поинтересоваться зачем 3 перегруженных generateToken? можно же все пихнуть в один метод? Вижу объяснение только в single responsability principle, гипотетически можно сделать развилку на втором методе если реализовывать рефреш логику
@InspireQuest-ru8pf Жыл бұрын
Спасибо за предоставленную информацию. У меня возник вопрос относительно класса AuthenticationManager. Я не понимаю, для чего он нужен, если в коде он нигде не используется, кроме как в качестве параметра для фильтра. Можете объяснить, зачем нужно передавать этот класс туда, если мы проверяем только токен клиента в фильтре, учитывая, что метод AuthenticationManager обращается к базе данных?
@SergeyKuganov11 ай бұрын
Экспирация)
@EugeneSuleimanov11 ай бұрын
Не подобрал сходу другого слова :)
@alexandr6055 Жыл бұрын
подскажите, откуда взялся секрет? Сказали, что его заранее подготовили и он валидный. Что это значит? Где его взяли и где валидировали?)
@sardartatybaev9173 Жыл бұрын
Евгений можно использовать пример кода с security без реактившины?
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий! Нет, этот подход заточен под реактивщину.
@hitash5395 Жыл бұрын
Евгений, а вы не планируете сделать курс на юдеми часов на 20 с созданием какого-нибудь мини проекта на джаве и спринге? Я бы купил.
@EugeneSuleimanov Жыл бұрын
Все курсы планирую делать публичными, бесплатными и на ютубе. По крайней мере, на данный момент :)
@hitash5395 Жыл бұрын
@@EugeneSuleimanov хорошо, буду ждать)
@ac130kz Жыл бұрын
Аннотация @Table как-то валидирует совместимость типов с базой хотя бы в рантайме? Со Spring не работал, просто как-то странно, в том же Django и SQLAlchemy, например, оно генерирует и управляется с SQL само
@EugeneSuleimanov Жыл бұрын
Генерация SQL происходит под капотом. Но если будет несовпадение со структурой данных или типами данных - вылетит исключение.
@maximelmanov6719 Жыл бұрын
Спасибо за видео. Есть вопросы: Зачем были добавлены роли, если фактически они не используются? ИМХО, работу с генерацией, валидацией токена, думаю, лучше не разносить в отдельные классы(solid же). Не понял, зачем проверять токен своим велосипедом, если либа сама может это сделать?
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! 1. По ролям - просто заготовка для расширения. 2. Здесь есть несколько вариантов. Тот же S из SOLID здесь можно трактовать по-разному. Вряд ли будет однозначный ответ.
@maximelmanov6719 Жыл бұрын
@@EugeneSuleimanov ещё третий вопрос. Проверить токен можно одной строкой
@maximelmanov6719 Жыл бұрын
@@EugeneSuleimanov + как раз про второй вопрос. Из-за того что работа с токеном разнесена, в нескольких классах тащиться secret из пропертей
@EugeneSuleimanov Жыл бұрын
@@maximelmanov6719 конечно можно - это учебный пример - нужно показать более детально и понятно.
@EugeneSuleimanov Жыл бұрын
@@maximelmanov6719 в проперти не вижу проблемы, если есть аргументы - было бы отлично. Могу упускать детали.
@АлексейКовырялов-я8е Жыл бұрын
Большое спасибо за видео! Очень полезно! Подскажите пожалуйста, как запустить это приложение в docker-compose? Собрал бд в отдельном контейнере, все прописал, все запустилось, но не могу перейти ни по одному из эндпоинтов..
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! Можете уточнить по ошибкам или логам контейнеров?
@АлексейКовырялов-я8е Жыл бұрын
@@EugeneSuleimanov В логах ничего нет, пробовал дебажить, при обращении к эндпоинтам вообще не доходит до контроллера.. При всем этом тот же код, запущенный без контейнеров, с локальной бд работает без проблем. Postman выдает ошибку Error: connect ECONNREFUSED 127.0.0.1:8089. Из за того, что один и тот же код работает при локальном запуске и не работает в контейнерах, напрашивается вывод, что проблема во взаимодействии с этими контейнерами.. Буду дальше копать, просто хотел уточнить, может быть такое, что к контейнеру сервиса закрыт доступ с внешних адресов? Или может быть есть особенности работы webflux, security, r2dbc, или netty в целом в контейнизированом приложении?
@front-endpadavan44219 ай бұрын
Немного не понял про перехват ошибок, можете пояснить зачем такой кастомный класс? Я использую @ControllerAdvice
@EugeneSuleimanov9 ай бұрын
Если я верно понял ваш вопрос, то с ним проще работать при создании гибкого механизма обработки. Например - свое DTO + получения деталей по ошибкам из БД по ключу.
@ИгорьИгорь-к3ы1р Жыл бұрын
27:09 кстати, есть момент с yaml. При его использовании среда разработки не предлагает варианты во время набора ключа, при работе с property файлом такого нет. Может знаете как заставить идею так же работать с yaml?
@EugeneSuleimanov Жыл бұрын
Интересное наблюдение, попробую изучить вопрос. И спасибо за комментарий!
@NameName-zg2kk Жыл бұрын
Спасибо за урок! Но у меня возник вопрос. Вот в yaml мы красиво пишем все эти секретные данные с паролями и ссылками на БД и генерации пароля для jwt, в Гит хаб пушается этот файл и тогда все те танци с конфигурациями идут на смарку, ведь файл будут видеть все кому не лень(только если репозиторий не приватный). Сам вопрос: в не учебном(комерционном) проекте yaml не пушается в гит? И еще на засипку, SECRET_KEY_INSTANCE по идее тоже должен быть в yaml, ведь класс Encoder 100% будет запушеным в гит.
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв! Обычно, эти переменные передаются как переменные среды и подтягиваются на этапе запуска.
@densusanin4415 Жыл бұрын
Общий смысл - создается локальная копия application.yml с кредами - application-local.yml, который "затирает" application.yml application-local.yml добавляем в .gitignore, теперь он не покидает локального репозитория и нужен только для локального тестирования Необходимые действия: 1) создать копию application.yml - application-local.yml указать в новом файле креды 2) Важно! - добавляем в .gitignore файл application-local.yml 3) в application добавляем spring: config: import: optional:application-local.yml для локального тестирования используется application-local.yml указываем креды не боясь, что они утекут вместе с коммитом в import: optional:application-local.yml optional - указывает что это опциональный параметр, если такого файла нет, то используется application.yml
@TomHardy-shorts Жыл бұрын
Правильно ли я понимаю, что многое вырезали в новой spring security?
@EugeneSuleimanov Жыл бұрын
Спасибо за вопрос. Я бы сказал, что заменили.
@TomHardy-shorts Жыл бұрын
Да, скорее так. От того и вопросы появились при создании SecurityWebFilterChain))@@EugeneSuleimanov
@daria3319 Жыл бұрын
Евгений, здравствуйте! Скажите, пожалуйста, можно ли с реализацией Security, приведенной вами, использовать аннотацию @PreAuthorize("hasAnyRole('ADMIN')") для управления доступом к методам контролеров на основании роли пользователя?
@EugeneSuleimanov Жыл бұрын
Добрый день! Да, этот подход рабочий.
@БогданСидоренко-о6ы Жыл бұрын
@@EugeneSuleimanov Не работает с коробки(
@anthonya880 Жыл бұрын
Is Spring Webflux gaining popularity ?
@EugeneSuleimanov Жыл бұрын
Definitely
@anthonya880 Жыл бұрын
@@EugeneSuleimanov Thanks
@scheglov_danil Жыл бұрын
Здравствуйте, что за тема у вас в IDEA?
@EugeneSuleimanov Жыл бұрын
Добрый вечер! Dracula
@scheglov_danil Жыл бұрын
@@EugeneSuleimanov Спасибо)
@ЕвгенийА-з6у Жыл бұрын
У entity зря не переопредели equals и hashCode.
@EugeneSuleimanov Жыл бұрын
Если я верно вас понял, то аннотация Data включает в себя: @ToString, @EqualsAndHashCode, @RequiredArgsConstructorи @Getter + @Setter для всех не финальных полей.
@erkin7138 Жыл бұрын
у Евгения Lombok, @Data включает переопределение методов для классов энтитей
@kolyuchkin Жыл бұрын
@@erkin7138 , та же JpaBuddy не рекомендует использовать аннотацию @Data в Entity. Если схема БД чуть сложнее и в Entity присутствуют "ленивые" поля, то ломбоковское видение методов toString, equals, hashCode может привести к ухудшению производительности приложения в связи с появлением множественных запросов к БД.
@Dimonchik_Limonchk Жыл бұрын
У меня глупый вопрос как создать POSTGRES-LOCAL? Через DG idea? Или что-то другое, я этого никогда не делал. Не понимаю как быть.
@EugeneSuleimanov Жыл бұрын
www.jetbrains.com/help/datagrip/postgresql.html Здесь есть делателе описание.
@Dimonchik_Limonchk Жыл бұрын
@@EugeneSuleimanov Сделал так: удалил все, скачал заново, установил драйвер нажал test connection ([08004] The server requested SCRAM-based authentication, but no password was provided.) ввел пароль. [28P01] �����: ������������ "dkloc" �� ������ �������� ����������� (�� ������). пришло такое.
@МаксимЖивотовский-ц8о Жыл бұрын
+
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@МаксимЖивотовский-ц8о Жыл бұрын
@@EugeneSuleimanov это вам благодарность!!!!!!!!!!!!
@АртемБойко-о9у Жыл бұрын
Чтото смотрю не спешат интегрировать hibernate reactive в спринг
@EugeneSuleimanov Жыл бұрын
Да, вы правы, не встречал такого еще.
@MrArksu Жыл бұрын
почему не kotlin в 2023 году?
@EugeneSuleimanov Жыл бұрын
Первая любовь не ржавеет :)
@user-vvvm Жыл бұрын
Курс мне понравился. Я попробовал его реализовать в netbeans 15 (maven). При вводе регистрационных данных, postman выдает An expected CSRF token cannot be found при 403 ошибке. Не могли бы вы подсказать в чем дело ? В секюрити конфиге .csrf().disable(). Заранее благодарен.
@EugeneSuleimanov Жыл бұрын
Сложно сказать, скорее всего ошибка в коде, а не в IDE или Maven. И спасибо за комментарий!
@user-vvvm Жыл бұрын
Спасибо за ответ, на этот раз все получилось, причина была в том , что секюрити конфиг у меня был отдельным пакетом на одном левеле с проектом.
@EugeneSuleimanov Жыл бұрын
@@user-vvvm рад, что все получилось!
@ruslanzubkov4297 Жыл бұрын
При клонировании и запуске проекта получаю сразу ошибку. Тем не менее спасибо за урок. Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1770 Caused by: org.flywaydb.core.internal.exception.FlywaySqlException at JdbcUtils.java:60 Caused by: org.postgresql.util.PSQLException at ConnectionFactoryImpl.java:844
@adeskmath Жыл бұрын
тоже застрял на этом моменте на ~ 15 минуте :), делал ручками как в видео из сообщений в консоли - что-то не так c авторизацией flyway, в итоге дописал user и password: flyway: url: jdbc:postgresql://localhost:5432/webflux_security locations: classpath:db/migration password: xxxxxx user: postgres после чего заработало и таблица в БД создалась, пока нет времени посмотреть дальше, может там будет объяснение (выше указ.проблемы), если нет - просьба экспертов подсказать, в чем причина и как ее решать (без дублирования как я сделал) Автору - спасибо большое, таких тем еще не видел + понятным языком. респект.
@EugeneSuleimanov Жыл бұрын
Проверьте, что Postgres запущен если да - проверьте, что БД создана и креды корректны.
@adeskmath Жыл бұрын
@@EugeneSuleimanov Postges был запущен, БД создана, а что такое "креды"? как указал ранее, сработало при добавлении 2х последних строк ниже: spring: r2dbc: url: r2dbc:pool:postgres://localhost:5432/webflux_security username: postgres password: xxxxxxx flyway: url: jdbc:postgresql://localhost:5432/webflux_security locations: classpath:db/migration password: xxxxxxx user: postgres
@EugeneSuleimanov Жыл бұрын
@@adeskmath должно отработать и без них, перепроверю, спасибо!
@raynur256 Жыл бұрын
Какие-то проблемы у меня со сборкой с этим flyway contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:142 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1770 Caused by: org.flywaydb.core.internal.exception.FlywaySqlException at JdbcUtils.java:60 Caused by: org.postgresql.util.PSQLException at QueryExecutorImpl.java:2713
@EugeneSuleimanov Жыл бұрын
Вы можете проверить, что БД создана и username + password корректны?
@raynur256 Жыл бұрын
@@EugeneSuleimanov проверил это подключением с идеи
@EugeneSuleimanov Жыл бұрын
@@raynur256 попробуйте подтянуть свежую версию проекта - внёс небольшую правку.
@raynur256 Жыл бұрын
@@EugeneSuleimanov Сработало, спасибо. Стоило догадаться, но я так и не понимаю как у вас без этого получилось
@EugeneSuleimanov Жыл бұрын
@@raynur256 сам в недоумении ))
@anonim00723 Жыл бұрын
Добрый день возникли такие ошибки не знаю как исправить org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1770 org.flywaydb.core.internal.exception.FlywaySqlException at JdbcUtils.java:60 org.postgresql.util.PSQLException at ConnectionFactoryImpl.java:693 There were failing tests. See the report at: file:///home/erin/IdeaProjects/webfluxsecurity/build/reports/tests/test/index.html буду рад любому ответу спасибо !
@EugeneSuleimanov Жыл бұрын
Добрый день! Подтяните свежую версию проекта - внёс небольшую правку.