Spring Security + База Данных. Регистрация и авторизация .

Поделиться
HTML-код
  • Опубликовано: 24 авг 2016
  • ====================================
    Мой сайт
    proselyte.net/
    ====================================
    Исходный код проекта:
    proselyte.net/wp-content/uploa...
    Ссылка github:
    github.com/proselytear/Spring...
    ====================================
    Технологии:
    - Spring (MVC, Security, JPA)
    - MySQL
    - Hibernate
    - Maven
    - HTML/CSS/JS (Bootstrap)
    - Tomcat 8

Комментарии • 374

  • @3aIIoMHuMeH9
    @3aIIoMHuMeH9 4 года назад +26

    Здравствуйте. Когда говорите "ну тут всё понятно" - это значит ученик не понял :(

  • @user-hn2wx5ue6z
    @user-hn2wx5ue6z 7 лет назад +12

    Отличный урок, все доступно обьяснили и все работает

  • @seriv2128
    @seriv2128 7 лет назад +2

    Ай молодцааа!
    Лучшей подачи материала не видел. Даже мне всё понятно. Не тормозишь, не мямлишь. Просто получил огромное удовольствие! Дерзай дальше! Респект!!!

  • @andrewberezin9013
    @andrewberezin9013 7 лет назад +4

    большое спасибо вам за ваши видео! ждем еще уроков в таком формате

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +3

      Пожалуйста, Андрей.
      Постарабсь в ближайшее время выложить новое видео.

  • @boba_alex
    @boba_alex 7 лет назад

    Класс. Очень хороший урок! Спасибо. Помогло сделать и разобраться в лабе.

  • @if_xx
    @if_xx 5 лет назад +1

    Спасибо, увидел много интересных вещей для себя. Весьма понятный урок.

  • @OlexanderPonomarenko
    @OlexanderPonomarenko 6 лет назад +6

    Каким образом происходит Вход в кабинет, если указан на форме ПОСТ, а в контроллере ГЕТ.?

  • @dimaskarpus1425
    @dimaskarpus1425 7 лет назад +1

    Лайк и подписка. Все доступно разбираешь, так держать ))

  • @omgistark
    @omgistark 7 лет назад

    Очень жду продолжения уроков. Отлично что я тебя нашел

  • @user-yl9sr9cw6b
    @user-yl9sr9cw6b 6 лет назад +4

    Понравился урок. Спасибо автору за детальные комментарии к видео. Урок ориентирован на определённый уровень знаний, для тех, кто в теории по отдельности изучил технологии , а связать и настроить не смог.

  • @KyryloHorbatiuk
    @KyryloHorbatiuk 7 лет назад

    Спасибо огромное за Ваши труды! Очень ценный материал!

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Пожалуйста, Кирилл.
      Рад, что материал оказался полезным.

  • @user-sb3ds9om4c
    @user-sb3ds9om4c 4 года назад

    спасибо большое за видео, мое качество кода и знания сильно улучшились

  • @stepanbandera6761
    @stepanbandera6761 7 лет назад +5

    Шикарное видео!
    Если можно хотелось бы высказать маленькое пожелание)))
    Хотелось бы увидеть видео курс (урок) по созданию интернет магазина.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Создание интернет-магазина - крайне трудоёмкий и долгий процесс. Записать его на видео - крайне проблематично.
      В лучшем случае, можно выложить исходники, а видео - будет крайне долгим )

    • @stepanbandera6761
      @stepanbandera6761 7 лет назад +8

      +Eugene Suleimanov да я понимаю но можно было бы сделать курс из нескольких видео!)) ну это моя просьба или предложение!)))

  • @kwazipie
    @kwazipie 2 года назад

    Спасибо, что используете logback вместо log4j. В 2021 это очень важно!)

  • @Steklopod
    @Steklopod 6 лет назад +1

    Спасибо за видео. Побольше бы подобного.

  • @streiker
    @streiker 7 лет назад +28

    Ну просто красавчик.Нравиться твоя подача материала! Какие твои дальнейшие планы по развитию сайта и канала? Как продвигается твой проект(указанный в одной из статей на сайте)? Пжл не забрасывай канал...ну очень мотивируешь!

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +20

      Рад, что материал оказался полезным )
      Планы как и сейчас -писать статьи, туториалы и выкладывать видео.
      Проект продвигается, когда закончу работу над ним - выложу. Но это в средней перспективе, а в ближайшей - объединить авторизацию и CRUD и добавить поиск (естественно с видео).
      Успехов Вам :)

    • @4val0v
      @4val0v 6 лет назад +1

      Здравствуйте Евгений, спасибо за видео урок, очень познавательно, хочется узнать будут ли еще видео уроки и когда ?

    • @konstantinasfalkovskis7506
      @konstantinasfalkovskis7506 6 лет назад

      Ждем новое видео ;)

  • @user-ed1zt3ke3r
    @user-ed1zt3ke3r 3 года назад +1

    Евгений спасибо конечно за твоё творчество и время, но у тебя написано Spring Security + База данных. Каких либо классов, связанных с зависимостью Spring Security не увидел. А хочу именно разобраться, как мапнуть Spring Security UserDetails на таблицу в моей базе.

  • @user-ev1me4xq8v
    @user-ev1me4xq8v 4 года назад +1

    ппц 1 час 10 минут, и только после этого первый запуск... Клёво!

    • @Romigo4
      @Romigo4 3 года назад +1

      Я думаю это делается не в первый раз + на втором экране есть какой то исходный верный код) Но, в любом случае, автор - мастер своего дела. Интересно javadoc который в начале кода ставится (@author, @version) ещё актуально ставить в 2020 ?

  • @insidegood1958
    @insidegood1958 6 лет назад +2

    Спасибо за урок. В принципе все понятно, но у меня после регистрации или простого входа выдает ошибку 403 access denied. не могу понять почему....

  • @olexande
    @olexande 6 лет назад

    Удобнее було бы показывать переходы при налиции "шапки" на веб страницах. Но так усложнится их код ... В идеале было бы добавить еще "кастомные" страницы для ошибок, например доступ запрещен ... Так же был-бы показетелен пример "добавим свою страницу и проведем ее по всей программе". Спасибо за уроки!!!

  • @user-pn1yd5mr7g
    @user-pn1yd5mr7g 7 лет назад

    Спасибо Евгений, очень хорошо изложен материал, а почему Ты используешь xml, а не аннотации в конфигурации?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +2

      Пожалуйста, Дмитрий.
      Спасибо за отзыв.
      На проектах, где я работал XML использовались чаще, поэтому и здесь использовал XML файлы.

  • @ivsergey5150
    @ivsergey5150 5 лет назад

    отличное видео. может и не для новичков, но для тех кто немного понимает все понятно.

  • @user-fy7xi7ko7v
    @user-fy7xi7ko7v 2 года назад

    Подскажите, а передача в контроллеры регистрации параметра Model прокатит, если я пишу фронт на Angular? (Не Angular.js)

  • @ivanbaranov1358
    @ivanbaranov1358 2 года назад

    Спасибо автору видео и за детальные комментарии.

  • @RuslanZinovyev
    @RuslanZinovyev 6 лет назад

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 лет назад

      Дорый день, Руслан.
      Спасибо за отзыв.
      Да, конечно, обычно валидация формы происходит на клиенте (на уровне фронтенда), чтобы не нагружать сервер заведомо не корректными запросами.
      А на сервере проверяются уже значения, проверка Nonnull и т.д.

  • @ascar66
    @ascar66 3 года назад +1

    Спасибо за видео, не понятно почему так мало подписчиков.

    • @phat80
      @phat80 3 года назад

      Потому что java сейчас на хрен никому не нужна. Сейчас модные языки совсем другие.

  • @user-ue3nm3uw7d
    @user-ue3nm3uw7d 2 года назад +2

    Народ подскажите зачем здесь делаем интерфейсы типа UserService ??? я всегда считал что интерфейсы нужны когда у них много наследников а тут только один UserServiceImpl так зачем он нужен нтерфейс ???

  • @user-hh5ci7rs7s
    @user-hh5ci7rs7s 3 года назад

    Господи, спасибо что ты есть :)))

  • @AlexandrFisher
    @AlexandrFisher 7 лет назад

    Спасибо большое за такие качественные видео!
    Подскажите пожалуйста. Вот я сделал все в точности как у Вас. Но я не могу зайти под созданным пользователем, а когда пытаюсь создать нового появляется страница с ошибкой.
    Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Вечер добрый, Александр.
      Веротянее всего у вас отличается имя БД, имя таблиц, или имя пользователя и пароль.
      Проверьте, что вы установили в конфигурационыых файлах приложения верные данные.
      Это должно решить проблему.

  • @Ed-te4ct
    @Ed-te4ct 5 лет назад

    Хороший материал. Спасибо!

  • @azattezekbaev2807
    @azattezekbaev2807 6 лет назад +1

    Спасибо за урок. Для того, чтобы понять в чем суть, нужно иметь фундаментальные знания по Java, Spring Core, JPA, Security, если эти знания будут, то будет ясно что к чему. У меня вопрос, к автору видео. Почему в коде нет конроллера и экшена для обработки данных из формы login.jsp?

  • @PassageGamesRus
    @PassageGamesRus 7 лет назад

    Отличное видео! Как заменить страницу ошибки доступа на сообщение, что нет прав?
    И можно видео, как на основе этого 'сервера' сделать станделон приложение и реализовать там регистрацию.

  • @user-ot9wn2ez5s
    @user-ot9wn2ez5s 6 лет назад

    Очень хорошая подач, учит писать чисты код. Большое спасибо.
    НО первый раз встретился с Spring Security and JPA. В некоторых моментах непонятно что это и зачем нужно.

  • @MrMaksimsergeevich
    @MrMaksimsergeevich 5 лет назад

    Наглядно, доступно, спасибо

  • @alexeystaroverov4804
    @alexeystaroverov4804 5 лет назад +9

    Хороший пример почему появился спрингбут

  • @nursd6628
    @nursd6628 4 года назад

    Идеально! Нет слов

  • @MrAivan87
    @MrAivan87 7 лет назад

    Спасибо огромное - очень полезное видео.

  • @stangevg
    @stangevg 6 лет назад

    Почему у меня не подключаются CSS? Кто сталкивался, что делал?

  • @antonsharykin-valianos9964
    @antonsharykin-valianos9964 6 лет назад +1

    Валидацию сделал через JS,возник другой вопрос: как на страничку welcome вытащить данные юзера(я добавил поля почты,даты рождения и тд)

    • @ilgiz.faritovich
      @ilgiz.faritovich 5 лет назад

      как разобрался с этим вопросом?
      тоже интерисует

  • @user-zz2ty3zc3c
    @user-zz2ty3zc3c 5 лет назад +1

    Наткнулся на видео, обрадовался) смотрел не отрываясь ожидая когда же будут малопонятные мне JavaConfig у Spring Securiti, и в конце такой, что??? XML??? неееееееет!!!! А так все круто)

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 лет назад +1

      Жизнь ))) Попробуйте посмотреть видео JWT на канале, там используется JavaConfig. Должно помочь

  • @user-ug4me4hg1b
    @user-ug4me4hg1b 6 лет назад

    Класс. Очень понятно. Спасибо

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 лет назад

      Дмитрий Пинчук пожалуйста. Спасибо за отзыв

  • @rickyspanish4878
    @rickyspanish4878 7 лет назад

    Отличное видео, Евгений.
    Скажите с чего начинали изучение Java?
    Сколько уже пишите? С какого времени вошли в профессию?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Спасибо за отзыв, Павел.
      Начинал с Шилдта "Java".
      Пишу уже более 3 -х лет.
      На вход ушло около года.

    • @rickyspanish4878
      @rickyspanish4878 7 лет назад

      Сейчас на какой уровень себя оцениваете Mid или Senior?
      Какой бы JS framework посоветовали для изучения?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Работодатель оценивает как Senior.
      Angular сейчас крайне популярен.

    • @dmytrokopan3833
      @dmytrokopan3833 5 лет назад

      @@EugeneSuleimanov та ладно))

  • @user-ge1fh8xl2v
    @user-ge1fh8xl2v 6 лет назад

    Над полем confirmPassword есть аннотация @Transient, разве обязательно ей еще дописывать transient слева?

    • @4val0v
      @4val0v 6 лет назад

      Автор дальше по видео это заметил убрал, оставил только аннотацию

  • @hal1on824
    @hal1on824 6 лет назад

    Для чего нужен файл logback.xml?

  • @aleksandrkubar6255
    @aleksandrkubar6255 7 лет назад

    Большое спасибо за видео!

  • @user-kh7du4ot2j
    @user-kh7du4ot2j 3 года назад

    любимый препод

  • @olzhastokanov
    @olzhastokanov 7 лет назад +1

    Здравствуйте. Столкнулся с такой проблемой, компилятор выводит:
    The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped.To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

    • @stangevg
      @stangevg 6 лет назад

      Скачать исходник мало, нужно запустить сервер БД, создать БД, подключиться к ней.

    • @newnutella
      @newnutella 5 лет назад

      @@stangevg Это не является причиной. запускал сервак, создал базу и подключился к ней. То же самое!

  • @romanhaivaronski2034
    @romanhaivaronski2034 6 лет назад

    No message found under code 'Size.userForm.login' for locale 'ru_RU'. Весь стак перелопатил, все перепробовал, но не могу решить ошибку с переходом в локаль русскую.
    делал и несколько файлов с сообщениями _ru_Ru та же ошибка.
    Хелп, если было когда-нибудь такое

  • @ihorkazakov
    @ihorkazakov 7 лет назад +1

    Евгений здравствуйте! Если можно добавьте к уроку кнопку "Reset password".
    Пользователь забыл пароль -> клик по кнопке -> ввод емейла -> отправляется письмо на указаний адрес с ссылкой -> переход по ссылке и ввод нового пароля.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +5

      День добрый.
      Валидация с помощью email будет уже в будущих видео.
      Цель этого урока - показать базовые элементы Spring Security.

    • @4val0v
      @4val0v 6 лет назад

      Здравствуйте, есть ли продолжение ?

  • @wvvwwwvvw
    @wvvwwwvvw 7 лет назад +7

    3:19 ALT+SHIFT+F10 - запускаем сервер с шортката.
    Можно плиз в следующих видео вслух говорить шорткаты, которые в идее используются. А то зачастую вместе со спрингом изучают также и новую для себя ИДЕ - Идею :).

  • @tisem2
    @tisem2 6 лет назад

    Подскажите пожалуйста как сделать обработку, если мне нужно поле email вместо userName, нужно свой метод findByEmail() написать?

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 лет назад

      Добрый вечер.
      Именно.
      При работе со SpringData - это становится крайне просто.

  • @user-pd1hx5gi7q
    @user-pd1hx5gi7q 7 лет назад

    Евгений здравствуйте. подскажите как в вашем приложении можно сделать, чтобы данные с сервера отдавались в формате JSON?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      День добрый, Владимир.
      Если делать всё более серьёзно, то необходимо реализовать REST API и там уже и работать с JSON.
      Но, это более обширная тема.

    • @user-pd1hx5gi7q
      @user-pd1hx5gi7q 7 лет назад

      спасибо

  • @DeamondGod865
    @DeamondGod865 3 года назад

    почему не подлючаеться _csrf и он cant resolve

  • @d-fyz
    @d-fyz 7 лет назад

    Будьте добры продолжить это видел с использованием Spring Social

  • @victormog
    @victormog 7 лет назад

    Оффтоп: Евгений, нет ли желания рассмотреть работу с _Apache POI_?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Добрый вечер.
      Как-то не особо :)

    • @victormog
      @victormog 7 лет назад

      Жаль... :-)

  • @user-gi3ke9bi1l
    @user-gi3ke9bi1l 4 года назад

    Евгений, отличный урок, спасибо! Возможно у Вас есть где-нибудь пример конфигурации с помощью классов, без .xml?
    Всё то же самое, только Java config:
    web.xml
    appconfig-root.xml
    appconfig-mvc.xml
    appconfig-data.xml
    appconfig-security.xml
    Заранее спасибо!

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 года назад +1

      Спасибо за отзыв, Владимир.
      ruclips.net/video/yRnSUDx3Y8k/видео.html
      Здесь несколько, иной подход, но конфигурация реализована с использованием классов.

    • @user-gi3ke9bi1l
      @user-gi3ke9bi1l 4 года назад

      Спасибо за ответ, Евгений, буду разбираться.

  • @Skykvi
    @Skykvi 2 года назад

    Большое человеческое спасибо. :) Возможно ли сделать урок по конфигурации без xml, аннотациями и java класс.

    • @EugeneSuleimanov
      @EugeneSuleimanov  2 года назад

      Спасибо за отзыв :)
      На канале уже есть такое видео с REST API.

  • @LiflexMiyh
    @LiflexMiyh 5 лет назад +1

    Лайк

  • @user-cx5ry5tt6s
    @user-cx5ry5tt6s 3 года назад +1

    Актуально ?

  • @dimatarasiuk7842
    @dimatarasiuk7842 7 лет назад

    Вы очень классный учитель, много научился по Вашим видео, особенно паттерны. И отдельное большое спасибо за то что Вы пишите код в реальном времени, таким образом на много лучше доходит! И если можно немножко больше объяснять {почему так, а не иначе}
    И скажите пожалуйста большая ли будет разница если использовать Gradle вместо Maven?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Спасибо за отзыв, Дима.
      Нет, сборщик не играет особой разницы - главное, чтобы не Ant - там своя атмосфера :)

  • @user-pd1hx5gi7q
    @user-pd1hx5gi7q 7 лет назад

    Но такой реализацией классов можно воспользоваться? и переделать контроллер?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Здраствуйте, Владимир.
      Да, конечно.
      Рпиложение ведь работает.

  • @alexandermilosh7458
    @alexandermilosh7458 7 лет назад

    Здравствуйте. Если ничего не ввести при регистрации и нажать Submit, то выбросит два error'а: "This field is required." и "Username must be between 8 and 32 characters.". А можно ли сделать, чтобы сначала проверял, пустое ли поле (и выводил эту ошибку, но не выводил ошибку на количество символов (то есть выбрасывал только одну ошибку, так сказать меньшую в иерархии))?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Добрый день, Александр.
      Да, конечно.
      Просто немного изменить проверку в методе.

    • @alexandermilosh7458
      @alexandermilosh7458 7 лет назад

      Спасибо. Просто думал, может есть какой-нибудь стандартный спринговский инструмент.

    • @olexande
      @olexande 6 лет назад

      С другой стороны сразу пользователя информирует о проблемах. Не нужно будет ему "каждую ошибку проходить отдельно".

  • @victormog
    @victormog 7 лет назад +1

    Видео отличное!
    Однако Вы так лихо вставили из буфера необходимые зависимости в POM-файл, а для меня, например, это самое непонятное в Spring...
    Может есть что именно по этой теме?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Добрый вечер, Виктор.
      По поводу maven -
      можете почитать туториал:
      proselyte.net/tutorials/maven/
      В данном случае - мы только подтягиваем зависимости.
      Вместо того, чтобы вручную ипортировать jar-файлы - мы поручаем это maven.

    • @victormog
      @victormog 7 лет назад

      Наткнулся на замечательный сайт:
      mvnrepository.com/
      Находишь нужный пакет нужной версии и можно сразу скопировать блок кода для зависимостей POM-файла.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +1

      Да, без этого сайта сложновато :)

    • @victormog
      @victormog 7 лет назад

      Странно, что почти никто в обучающих статьях и блогах не упоминает о нем...

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Веротянее всего, это связано с тем, что данный сайт для работы с maven всё равно, что docs.oracle.com/javase/8/docs/api/ для Java

  • @GrebenAdr
    @GrebenAdr 6 лет назад

    Здравствуйте, Евгений.
    Попытался объединить вместе два ваших урока(Создание CRUD приложения на языке Java с помощью Spring и Spring Security), по отдельности они работают отлично, а вот вместе выдает ошибку:
    ...
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private task.manager.service.UserService task.manager.controller.UserController.userService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private task.manager.dao.UserDao task.manager.service.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [task.manager.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    ...
    Возможно, вы уже не помните эти приложения, но если помните или примерно можете знать, в чем может быть проблема, напишите, пожалуйста.

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 лет назад

      Проблема в несколько разных подходах. Попробуйте просто добавить сущность Book в данное приложение - это будет в разы легче.

    • @GrebenAdr
      @GrebenAdr 6 лет назад

      Точно, я об этом не подумал. Спасибо большое.

  • @sviatoslavnaida89
    @sviatoslavnaida89 7 лет назад

    можете сделать пример типа социальной сети пару юзеров что видит пользователь что друзья и тд на Spring security

    • @sviatoslavnaida89
      @sviatoslavnaida89 7 лет назад

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

  • @KomplikevychOstap
    @KomplikevychOstap 3 года назад

    Ля, я столько искал подобний канал, где не пишут на спринге програми типа хелоу ворлд, хотя ета тоже не сложна, но вот хотя би разние технологии используются.. Спасибо большое..
    Если можно, сделайте видео об простеньком серверном приложении на спринге (ну прям очень простом) , которое будет работать на REST архитектуре, и реагирувать на риквест от клиентского приложения(также простенькая програмка). Я просто еще учусь и мне чето сложно сделать клиент, (серверное приложение протестирувал с помощью Postman, json-и прилетали), а вот с собственним клиентом нифига не работает(

  • @korshun1984
    @korshun1984 5 лет назад

    Подскажите, в контроллере в аргументы функций передаем некую Model. Это шо такое ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 лет назад +1

      model - грубо говоря - Map, в которую мы можем записать нужные значения с любыми ключами. И на странице, с которой связан этот метод контроллера, нам будут доступны эти значения, по указанным ключам. Это если на пальцах. Если более подробно, то docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/ui/Model.html

    • @korshun1984
      @korshun1984 5 лет назад

      Оперативно, спасибо!

  • @McMeil
    @McMeil 7 лет назад +1

    Спасибо. хороший урок.
    Буду благодарен, если ответите на вопросы ниже:
    1. Могли бы вы более детально про кодировку рассказать, а именно как мы получили значение '$2a$11$uSXS6rLJ91WjgOHhEGDx..VGs7MkKZV68Lv5r1uwFu7HgtRn3dcXG' из '12345678'
    2. есть ли вариант обойтись без web.xml (я так понимаю через SpringConfig) и можете ли Вы про него рассказать в контексте этого урока.
    В любом случае огромное спабо за такой урок.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +1

      1. Мы кодируем введённый пользователем пароль с помощью bCrypt - можем использовать другой алгоритм шифрования.
      Человек вводит праоль - мы его сразу шифруем - и записываем результат в БД.
      2. Есть вариант конфигурирования с помощью класса, но лично я считаю, что конфигурационные файлы более лучший способ и проекты на которых работал использовали именно такой подход.
      А конфигурирование с помощью Java класса можете погуглить и найдёте ответ без проблем.
      Пожалуйста. Успехов вам в изучении.

    • @McMeil
      @McMeil 7 лет назад

      Eugene Suleimanov так и сделаю) спасибо

  • @wvvwwwvvw
    @wvvwwwvvw 7 лет назад

    3:45 - как мы подтянули с версиями зависимостей? Я пишу properties и таб, но у меня просто тег открылся-закрылся.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      ctrl + c, ctrl + v
      Крайне долго объяснять все зависимости.
      Исходный код программы вы можете изучить здесь:
      github.com/proselytear/SpringSecurityApp

    • @wvvwwwvvw
      @wvvwwwvvw 7 лет назад

      Спасибо.

  • @provinceskateboards5006
    @provinceskateboards5006 4 года назад

    500 error при попытке добавить пользователя, при попытки логина с username=proselyte и password=12345678. В mySQL таблицы все созданы, в идее конекшн с базой установлен. Файл database.properties отредактирован под подключение к моей базе. В чем может быть дело?

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 года назад

      Недостаточно информации- нужен более подробный лог

  • @ilgiz.faritovich
    @ilgiz.faritovich 5 лет назад

    @Eugene Suleimanov
    спасибо за видео.
    ДОбавил дополнительно чтоб таблице пересоздавались при запуске приложения. create-drop Как при этом сделать так чтоб roles заолнялась данными сама ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 лет назад

      Спасибо за отзыв. Насколько я знаю, в данном случае адекватным способом- никак(если не прописывать это в коде, конечно же). Либо уже подключать liquibase

    • @ilgiz.faritovich
      @ilgiz.faritovich 5 лет назад

      @@EugeneSuleimanov
      А нельзя тут смастерить что то типо этого? и чтоб это заработало?
      @Repository
      public class HiberDAO {
      @PersistenceContext EntityManager em; // --2
      public HiberDAO() { }
      @Transactional
      public void init() {
      Role r1 = new Role("ROLE_USER");
      Role r2 = new Role("ROLE_ADMIN");
      em.persist(r1);
      em.persist(r2);
      }

    • @user-jy8gp7rv9p
      @user-jy8gp7rv9p 4 года назад

      @@ilgiz.faritovich
      Влассе приложения который обычно аннотирован @SpringBootApplication добавьте метод
      @PostConstruct
      void started() {
      //тут заполняйте таблицу, предварительно проверив есть ли в ней данные
      }
      Костыль конечно но сойдет

  • @andriyyarish8628
    @andriyyarish8628 7 лет назад

    Eugene Suleimanov, about DAO there are piece of code "@Autowired
    private UserDao userDao;" but actually only interfaces were created, so when I start application spring could not find appropriate bean because there are no implementation. How does it work in you case ??

  • @Ilyas377
    @Ilyas377 4 года назад +1

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

  • @Akjanovy
    @Akjanovy 7 лет назад

    Такое большое спасибо, за пример.
    Если кто такой же балбес как и я не может найти SpringMVC шаблон или Tomcat server, то это потому, что в Community edition их нет. Пришлось покупать...

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Пожалуйста, Ерлан.
      В принципе, можно было не полкупать Ultimate, а просто смириться с выходом из IDEA каждые 30 минут. Для новичка не критично.
      Но, если есть возможность, то конечо.

    • @qwd412
      @qwd412 7 лет назад

      в гугл Idea license server и при первом запуске идеи оно просит ключ или лиценз сервер, гуглиш лиценз сервер для идеи КТЛ+С +В вот лицуха безплатная

  • @Andrzej3935
    @Andrzej3935 2 года назад

    Спасибо!

  • @dddryinside
    @dddryinside 10 месяцев назад

    А почему нельзя было сделать только одну таблицу users, где было бы поле user_role? Тогда не нужно было бы создавать ещё 2 таблицы...

    • @EugeneSuleimanov
      @EugeneSuleimanov  10 месяцев назад

      Можно, это как один из вариантов.
      Спасибо за комментарий!

  • @mango5232
    @mango5232 6 лет назад

    thank you!

  • @user-lc1fl8ql6x
    @user-lc1fl8ql6x 7 лет назад

    Подскажите, где можно скачать исходные коды проекта?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Здраствуйте, Владимир.
      Ссылки есть в описании проекта и продублирую ещё раз здесь:
      Исходный код проекта:
      proselyte.net/wp-content/uploads/2016/08/SpringSecurityApp.zip
      Ссылка github:
      github.com/proselytear/SpringSecurityApp

  • @rusmemes
    @rusmemes 7 лет назад +3

    супер! просто супер!

  • @user-jy6dz8os9m
    @user-jy6dz8os9m 3 года назад +1

    Подскажите, что может быть не так. Не конектиться к базе данных (при этом test connectionконектится). Открывает только страничку registration на все остальные переходы выдает следующую ошибку:
    Message Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
    Description The server encountered an unexpected condition that prevented it from fulfilling the request.
    Exception
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
    Root Cause
    org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
    Root Cause
    org.hibernate.exception.GenericJDBCException: Could not open connection
    Root Cause
    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
    Root Cause
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
    Root Cause
    java.lang.NullPointerException

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 года назад

      Я бы проверил:
      1. Что сервер БД запущен
      2. БД создана
      3. Данные для подключения указаны верно.
      Ошибка, вероятнее всего, в одном из этих пунктов

    • @user-jy6dz8os9m
      @user-jy6dz8os9m 3 года назад

      @@EugeneSuleimanov 1й и 2й пункт точно ок. на счет 3 тоже вроде все как в видео и исходниках, можно подробней что именно в данных может быть не так?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 года назад

      @@user-jy6dz8os9m какие версии mysql и mysql connector?

    • @user-jy6dz8os9m
      @user-jy6dz8os9m 3 года назад +1

      @@EugeneSuleimanov
      5.1.36
      а mySqL я так понимаю 8.0.20

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 года назад

      @@user-jy6dz8os9m попробуйте поднять версию корректора до текущей стабильной

  • @perfect_human2664
    @perfect_human2664 Год назад

    Здравствуйте, для весны 2023 года этот урок ещё актуальный?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад

      Добрый день!
      В части секьюрити - только как концепция. В части технологий для работы я бы рекомендовал посмотреть это видео:
      ruclips.net/video/gz4KzqmOlaw/видео.html

    • @perfect_human2664
      @perfect_human2664 Год назад

      @@EugeneSuleimanov спасибо больше за совет, только сейчас заметил ваш ответ.
      P.s.
      В универе просто должен сделать веб проект, решил делать на джаве😅
      Спасибо ещё раз.

  • @alexandersmirnov4274
    @alexandersmirnov4274 7 лет назад +1

    Евгений а как задается соль для кодирования пароля?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Добрый день, Александр.
      Для кодирования пароля используется алгоритм BCRYPT, с помощью которого мы шифруем пароль в сервисном слое.

    • @alexandersmirnov4274
      @alexandersmirnov4274 7 лет назад

      да это понятно но ведь этот алгоритм должен использовать соль для шифрования пароля
      откуда он берет соль по умолчанию что ли?

    • @alexxis246
      @alexxis246 6 лет назад

      Я думаю, что ты уже догадался заглянуть в исходники? Если нет, то погляди. Если лень - то encode сам генерирует соль по своим алгоритмам.

  • @user-ni5nt2bs8j
    @user-ni5nt2bs8j 4 года назад

    когда добавляешь артифакт, надо указать апликейшен контекст "/" а по умолчанию стоит имя проекта

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 года назад

      Да, справедливое замечание. Спасибо.

  • @yaroslavneilo1820
    @yaroslavneilo1820 4 года назад

    Спасибо за ваши уроки! Помогают разобраться со Spring. Немного бы больше описания своих действий и какое поле, что означает мне кажется было бы не лишним =)
    Но есть вопрос, вы все странички делаете через JSP. Есть ли у вас видео, как соединить HTML+CSS+JS+JAVA? или другими словами как соединить frontend и backend? Как передавать данные из форм на сервер для обработки? как возвращается результат и каким образом его выводят на экран? Или все динамически создаваемые таблицы / страницы пишут в формате JSP?

    • @goggitoggi3510
      @goggitoggi3510 4 года назад +1

      Удаляете jsp,вместо него подставляете html, css-js-если совсем по нубски можно на самой странице html сделать,но обычно выносят в отдельные файлы и по ссылкам добавляют в html.Данные передаются со страницы в post/get методы.Вам надо бы не со спринга начать,а c сервлетов,поищите видосы на ютубе как делаются приложения с помощью сервлетов,тогда вам будет более понятно

    • @yaroslavneilo1820
      @yaroslavneilo1820 4 года назад

      @@goggitoggi3510 это немного не то, что я спрашивал. Разработчики java говорят, что они работают только с сервером и во фронтенд не лезут. Я так понимаю, что данные из формы обрабатывает js и передает на сервер json, а мы уже работаем с ним и возвращаем тоже json. Я не понимаю это взаимодействие. А то, что вы описали, это я уже понял) спасибо

    • @goggitoggi3510
      @goggitoggi3510 4 года назад

      Yaroslav Neilo не,описанная вами логика с js-это похоже технология ajax.она не обязательна,просто один из способов передачи.да и Json можно вполне отправить на форму,но без Ajax с формы вы не можете получить json.в обычном случае,данные передаются посредством http,никаких json.Что насчёт того,что java-прогеров и фронта-я успел сходить на два собеса до карантина и спрашивали знание css,html,js на обоих.Правда,по вершкам.Представление все равно иметь надо

  • @user-sw5ck5qk7q
    @user-sw5ck5qk7q 5 лет назад

    Никак не могу понять зачем все так усложнять? Dao, reposiroty и repositoryImpl) Обьясните пожалуйста

    • @dmytrokopan3833
      @dmytrokopan3833 5 лет назад

      ruclips.net/video/TMuno5RZNeE/видео.html

  • @maxwoo12323
    @maxwoo12323 6 лет назад

    А зачем делать связь "Many-to-many"? Разве у пользователя может быть сразу несколько ролей?

    • @stangevg
      @stangevg 6 лет назад

      Например Админ имеет две роли, как админа, так и пользователя. Мне это удобно для проекта.

    • @maxwoo12323
      @maxwoo12323 6 лет назад

      Спустя день, после задания вопроса, столкнулся с необходимостью в такой же реализации.) Но есть другой нюанс в настройке userDetailService. Прояснишь несколько вопросов? Вот телеграм t.me/ANDREW_TUR

  • @wetergshsghsfghsfh
    @wetergshsghsfghsfh 4 года назад

    Было бы здорово, если при регистрации нового пользователя можно было бы выбирать роль, а не назначать ее по-умолчанию.

  • @victordelacroix654
    @victordelacroix654 3 года назад

    Учу Java 3-ий месяц... неужели когда-то это всё я начну понимать :)))))

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 года назад

      Если продолжать изучать, то да :)

    • @user-oi3gq9el5v
      @user-oi3gq9el5v Год назад

      Забей на время. 1 год и 2 месяца..сейчас тут..у Автора классная подача

  • @alexk377
    @alexk377 3 года назад +2

    Всю голову сломал себе. Пробовал запускать данный проект с гитхаба - ошибка
    Artifact SpringSecurityApp:war exploded: Error during artifact deployment. See server log for details.

    • @alexk377
      @alexk377 3 года назад

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

  • @matroskin2406
    @matroskin2406 4 года назад

    Отличный пример! Плохо только, что конфигурация через xml

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 года назад

      Спасибо за отзыв. По поводу xml - с него все начиналось, поэтому решил показать с истоков :)

    • @matroskin2406
      @matroskin2406 4 года назад

      @@EugeneSuleimanov так может пора записать новый видос? )

  • @MrAivan87
    @MrAivan87 7 лет назад

    "А сравнивать данные стоит другим способом". Каким? Если это можно описать несколькими словами, ну или подскажите где посмотреть. Спасибо.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Смотря что именно необходимо сравнить.
      Необходимо боллее полное описание самой задачи.

    • @MrAivan87
      @MrAivan87 7 лет назад

      Есть параметры, которые не уникальны - имя, фамилия и т.п., есть параметры, которые уникальны - к примеру телефон пользователя, email... При попытке регистрации пользователя с уже зарегистрированным уникальными данными должно выдаваться сообщения, что-то типа: "пользователь с таким телефоном уже существует!"

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Сделайте данные уникальными в БД и обработайте exception.
      Примерно так.

    • @MrAivan87
      @MrAivan87 7 лет назад

      Спасибо.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      MrAivan87
      Пожалуйста, Иван :)

  • @klerg321
    @klerg321 5 лет назад

    Смотреть с 29той минуты :)

  • @user-wz8ld7sm6k
    @user-wz8ld7sm6k 7 лет назад

    спасибо. Много времени на комментарии уходит.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Пожалуйста, Антон.
      Можно было бы и совсем молча, но, это же учебное видео :)

    • @user-wz8ld7sm6k
      @user-wz8ld7sm6k 7 лет назад

      Хамите... Да, это учебное видео. Про Spring security. Понятно, что комментарии хорошо писать в рабочем коде. Но тут видео о Spring security, а не про clear code.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +1

      И не думал хамить, Антон.
      Прошу прощения, если так показалось.

  • @arsensoroka8705
    @arsensoroka8705 7 лет назад

    Подскажите, а где ссылка на исходники?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +1

      В описании к видео и вот
      github.com/proselytear/SpringSecurityApp

  • @yamn4ik618
    @yamn4ik618 7 лет назад

    У меня возникла такая праблема ->
    Artifact SpringSecurityApp:war exploded: Error during artifact deployment. See server log for details.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Проверьте версии в pom.xml файле.
      Чтобы совпадали с теми, которые в видео.
      Также конфигурационные xml файлы - вероятнее всего, проблема именно там.

  • @dark_evil77
    @dark_evil77 4 года назад

    У тебя Linux на виртуалке ?

  • @chugaister7538
    @chugaister7538 7 лет назад

    Кстати вопрос... что за магия происходит при логине? куда передаются данные с формы?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Это магия называется Spring Security

    • @chugaister7538
      @chugaister7538 7 лет назад

      Действительно магия. Которая без фильтра не работает. Классный урок. Вопрос не по теме: в реалиях современных что больше используется javaconfig или xml?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Andrew Butok На проектах, где я работал - xml.

    • @chugaister7538
      @chugaister7538 7 лет назад

      Спасибо. А таким образом осуществленный логин можно ли логировать? если да то каким образом

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Andrew Butok Можем залогировать, в принцип,но зачем? :)
      Просто копируем первый ввод и вставляем его в лог файл.

  • @integra0128
    @integra0128 7 месяцев назад

    Java отказывается создавать бин AuthenticationManager, из-за этого не запускается
    вручную не создается, тк интерфейс не может быть инстанциирован

  • @ms_shifu7047
    @ms_shifu7047 Год назад

    thanks

  • @egorrotany7038
    @egorrotany7038 6 лет назад

    Вопросы. 1.Как подключить все зависимости что вы перечислили. 2.При вводу @Entity, @Table, @Id, редактор IntelliJ отмечает их крассными и дополнение по ним также не работает, я думаю что это как то связано с зависимостями которые у меня не установлены.

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 лет назад

      Egor Rotany здраствуйте. Для этого необходимо заполнить пъфайл pom.xml.
      Он отвечает за подтягивание зависимостей.
      По второму вопросу - Вы правы - вероятнее всего, проблема именно в этом.

    • @egorrotany7038
      @egorrotany7038 6 лет назад

      Вы очень быстро пробежли зависимости, я не успел все переписать. Что делать ?

    • @egorrotany7038
      @egorrotany7038 6 лет назад

      Нашел на GitHub-е спасибо!

    • @egorrotany7038
      @egorrotany7038 6 лет назад

      Я добавил зависимости, как теперь сделать так что бы maven их подтянул ?

    • @egorrotany7038
      @egorrotany7038 6 лет назад

      Я добавил копи-пастом зависимости с pom.xml с вашего pom.xml что на GitHub-е, теперь в моем pom.xml появились следующие сообщения, пример. Dependency 'org.springframework:spring-web:4.2.0.RELEASE' not found... Inspect a Maven model for resolution problems.