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

  Рет қаралды 138,427

Eugene Suleimanov

Eugene Suleimanov

Күн бұрын

====================================
Мой сайт
proselyte.net/
====================================
Исходный код проекта:
proselyte.net/w...
Ссылка github:
github.com/pro...
====================================
Технологии:
- Spring (MVC, Security, JPA)
- MySQL
- Hibernate
- Maven
- HTML/CSS/JS (Bootstrap)
- Tomcat 8

Пікірлер: 377
@3aIIoMHuMeH9
@3aIIoMHuMeH9 4 жыл бұрын
Здравствуйте. Когда говорите "ну тут всё понятно" - это значит ученик не понял :(
@АлексейМилонов-у5х
@АлексейМилонов-у5х 7 жыл бұрын
Отличный урок, все доступно обьяснили и все работает
@seriv2128
@seriv2128 7 жыл бұрын
Ай молодцааа! Лучшей подачи материала не видел. Даже мне всё понятно. Не тормозишь, не мямлишь. Просто получил огромное удовольствие! Дерзай дальше! Респект!!!
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Спасибо :)
@streiker
@streiker 8 жыл бұрын
Ну просто красавчик.Нравиться твоя подача материала! Какие твои дальнейшие планы по развитию сайта и канала? Как продвигается твой проект(указанный в одной из статей на сайте)? Пжл не забрасывай канал...ну очень мотивируешь!
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Рад, что материал оказался полезным ) Планы как и сейчас -писать статьи, туториалы и выкладывать видео. Проект продвигается, когда закончу работу над ним - выложу. Но это в средней перспективе, а в ближайшей - объединить авторизацию и CRUD и добавить поиск (естественно с видео). Успехов Вам :)
@4val0v
@4val0v 7 жыл бұрын
Здравствуйте Евгений, спасибо за видео урок, очень познавательно, хочется узнать будут ли еще видео уроки и когда ?
@konstantinasfalkovskis7506
@konstantinasfalkovskis7506 6 жыл бұрын
Ждем новое видео ;)
@andrewberezin9013
@andrewberezin9013 7 жыл бұрын
большое спасибо вам за ваши видео! ждем еще уроков в таком формате
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Андрей. Постарабсь в ближайшее время выложить новое видео.
@СергейЗайцев-ш2ц
@СергейЗайцев-ш2ц 7 жыл бұрын
Понравился урок. Спасибо автору за детальные комментарии к видео. Урок ориентирован на определённый уровень знаний, для тех, кто в теории по отдельности изучил технологии , а связать и настроить не смог.
@rufat85
@rufat85 4 жыл бұрын
ппц 1 час 10 минут, и только после этого первый запуск... Клёво!
@Romigo4
@Romigo4 4 жыл бұрын
Я думаю это делается не в первый раз + на втором экране есть какой то исходный верный код) Но, в любом случае, автор - мастер своего дела. Интересно javadoc который в начале кода ставится (@author, @version) ещё актуально ставить в 2020 ?
@OlexanderPonomarenko
@OlexanderPonomarenko 6 жыл бұрын
Каким образом происходит Вход в кабинет, если указан на форме ПОСТ, а в контроллере ГЕТ.?
@виталиймайер-е6п
@виталиймайер-е6п 3 жыл бұрын
Народ подскажите зачем здесь делаем интерфейсы типа UserService ??? я всегда считал что интерфейсы нужны когда у них много наследников а тут только один UserServiceImpl так зачем он нужен нтерфейс ???
@alexeystaroverov4804
@alexeystaroverov4804 5 жыл бұрын
Хороший пример почему появился спрингбут
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
тонко )
@diasorynbassar9806
@diasorynbassar9806 4 жыл бұрын
@@EugeneSuleimanov в спрингбуте секьюрити встроен?
@stepanbandera6761
@stepanbandera6761 8 жыл бұрын
Шикарное видео! Если можно хотелось бы высказать маленькое пожелание))) Хотелось бы увидеть видео курс (урок) по созданию интернет магазина.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Создание интернет-магазина - крайне трудоёмкий и долгий процесс. Записать его на видео - крайне проблематично. В лучшем случае, можно выложить исходники, а видео - будет крайне долгим )
@stepanbandera6761
@stepanbandera6761 8 жыл бұрын
+Eugene Suleimanov да я понимаю но можно было бы сделать курс из нескольких видео!)) ну это моя просьба или предложение!)))
@if_xx
@if_xx 5 жыл бұрын
Спасибо, увидел много интересных вещей для себя. Весьма понятный урок.
@dimaskarpus1425
@dimaskarpus1425 7 жыл бұрын
Лайк и подписка. Все доступно разбираешь, так держать ))
@boba_alex
@boba_alex 7 жыл бұрын
Класс. Очень хороший урок! Спасибо. Помогло сделать и разобраться в лабе.
@KyryloHorbatiuk
@KyryloHorbatiuk 7 жыл бұрын
Спасибо огромное за Ваши труды! Очень ценный материал!
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Кирилл. Рад, что материал оказался полезным.
@kwazipie
@kwazipie 2 жыл бұрын
Спасибо, что используете logback вместо log4j. В 2021 это очень важно!)
@АхтемВейс
@АхтемВейс 3 жыл бұрын
Евгений спасибо конечно за твоё творчество и время, но у тебя написано Spring Security + База данных. Каких либо классов, связанных с зависимостью Spring Security не увидел. А хочу именно разобраться, как мапнуть Spring Security UserDetails на таблицу в моей базе.
@ivanbaranov1358
@ivanbaranov1358 3 жыл бұрын
Спасибо автору видео и за детальные комментарии.
@EugeneSuleimanov
@EugeneSuleimanov 3 жыл бұрын
Спасибо за отзыв :)
@omgistark
@omgistark 8 жыл бұрын
Очень жду продолжения уроков. Отлично что я тебя нашел
@Steklopod
@Steklopod 7 жыл бұрын
Спасибо за видео. Побольше бы подобного.
@ТимурТабычаков
@ТимурТабычаков 5 жыл бұрын
Наткнулся на видео, обрадовался) смотрел не отрываясь ожидая когда же будут малопонятные мне JavaConfig у Spring Securiti, и в конце такой, что??? XML??? неееееееет!!!! А так все круто)
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
Жизнь ))) Попробуйте посмотреть видео JWT на канале, там используется JavaConfig. Должно помочь
@АртёмКурилко-н6ч
@АртёмКурилко-н6ч 4 жыл бұрын
спасибо большое за видео, мое качество кода и знания сильно улучшились
@ascar66
@ascar66 4 жыл бұрын
Спасибо за видео, не понятно почему так мало подписчиков.
@phat80
@phat80 3 жыл бұрын
Потому что java сейчас на хрен никому не нужна. Сейчас модные языки совсем другие.
@insidegood1958
@insidegood1958 6 жыл бұрын
Спасибо за урок. В принципе все понятно, но у меня после регистрации или простого входа выдает ошибку 403 access denied. не могу понять почему....
@ivsergey5150
@ivsergey5150 5 жыл бұрын
отличное видео. может и не для новичков, но для тех кто немного понимает все понятно.
@АнтонГорбатенко-у2ь
@АнтонГорбатенко-у2ь 4 жыл бұрын
Подскажите, что может быть не так. Не конектиться к базе данных (при этом 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 4 жыл бұрын
Я бы проверил: 1. Что сервер БД запущен 2. БД создана 3. Данные для подключения указаны верно. Ошибка, вероятнее всего, в одном из этих пунктов
@АнтонГорбатенко-у2ь
@АнтонГорбатенко-у2ь 4 жыл бұрын
@@EugeneSuleimanov 1й и 2й пункт точно ок. на счет 3 тоже вроде все как в видео и исходниках, можно подробней что именно в данных может быть не так?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
@@АнтонГорбатенко-у2ь какие версии mysql и mysql connector?
@АнтонГорбатенко-у2ь
@АнтонГорбатенко-у2ь 4 жыл бұрын
@@EugeneSuleimanov 5.1.36 а mySqL я так понимаю 8.0.20
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
@@АнтонГорбатенко-у2ь попробуйте поднять версию корректора до текущей стабильной
@СергейФомин-п2с
@СергейФомин-п2с 2 жыл бұрын
Подскажите, а передача в контроллеры регистрации параметра Model прокатит, если я пишу фронт на Angular? (Не Angular.js)
@alexk377
@alexk377 3 жыл бұрын
Всю голову сломал себе. Пробовал запускать данный проект с гитхаба - ошибка Artifact SpringSecurityApp:war exploded: Error during artifact deployment. See server log for details.
@alexk377
@alexk377 3 жыл бұрын
Пробовал набрать все самостоятельно - точно такая же ошибка. В чем проблема - найти никак не могу, бьюсь второй день. Евгений, подскажите пожалуйста?
@romantikh6728
@romantikh6728 Ай бұрын
Может невнимательно слушаю, но зачем прописывать создание таблиц вручную, а потом создавать их же с помощью Хибернейт аннотаций?
@Ed-te4ct
@Ed-te4ct 5 жыл бұрын
Хороший материал. Спасибо!
@wvvwwwvvw
@wvvwwwvvw 8 жыл бұрын
3:19 ALT+SHIFT+F10 - запускаем сервер с шортката. Можно плиз в следующих видео вслух говорить шорткаты, которые в идее используются. А то зачастую вместе со спрингом изучают также и новую для себя ИДЕ - Идею :).
@АртёмКурилко-н6ч
@АртёмКурилко-н6ч 4 жыл бұрын
alt не обязателен
@ВасилиКарпов
@ВасилиКарпов 4 жыл бұрын
Господи, спасибо что ты есть :)))
@ДмитрийПинчук-и8щ
@ДмитрийПинчук-и8щ 7 жыл бұрын
Класс. Очень понятно. Спасибо
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Дмитрий Пинчук пожалуйста. Спасибо за отзыв
@MrAivan87
@MrAivan87 8 жыл бұрын
Спасибо огромное - очень полезное видео.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Пожалуйста, Иван.
@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 жыл бұрын
Вечер добрый, Александр. Веротянее всего у вас отличается имя БД, имя таблиц, или имя пользователя и пароль. Проверьте, что вы установили в конфигурационыых файлах приложения верные данные. Это должно решить проблему.
@MrMaksimsergeevich
@MrMaksimsergeevich 6 жыл бұрын
Наглядно, доступно, спасибо
@ДневникТаджика-н1г
@ДневникТаджика-н1г 3 жыл бұрын
любимый препод
@olexande
@olexande 7 жыл бұрын
Удобнее було бы показывать переходы при налиции "шапки" на веб страницах. Но так усложнится их код ... В идеале было бы добавить еще "кастомные" страницы для ошибок, например доступ запрещен ... Так же был-бы показетелен пример "добавим свою страницу и проведем ее по всей программе". Спасибо за уроки!!!
@nursd6628
@nursd6628 4 жыл бұрын
Идеально! Нет слов
@aleksandrkubar6255
@aleksandrkubar6255 7 жыл бұрын
Большое спасибо за видео!
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Александр.
@antonsharykin-valianos9964
@antonsharykin-valianos9964 6 жыл бұрын
Валидацию сделал через JS,возник другой вопрос: как на страничку welcome вытащить данные юзера(я добавил поля почты,даты рождения и тд)
@ilgiz.faritovich
@ilgiz.faritovich 5 жыл бұрын
как разобрался с этим вопросом? тоже интерисует
@ДмитрийРоманчук-ч4т
@ДмитрийРоманчук-ч4т 7 жыл бұрын
Спасибо Евгений, очень хорошо изложен материал, а почему Ты используешь xml, а не аннотации в конфигурации?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Дмитрий. Спасибо за отзыв. На проектах, где я работал XML использовались чаще, поэтому и здесь использовал XML файлы.
@leonidas8404
@leonidas8404 Ай бұрын
50:20 Будьте здоровы!
@EugeneSuleimanov
@EugeneSuleimanov Ай бұрын
@@leonidas8404 спасибо :)
@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 та ладно))
@olzhastokanov
@olzhastokanov 7 жыл бұрын
Здравствуйте. Столкнулся с такой проблемой, компилятор выводит: 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 Это не является причиной. запускал сервак, создал базу и подключился к ней. То же самое!
@ЕвгенийБондаренко-ъ9в
@ЕвгенийБондаренко-ъ9в 6 жыл бұрын
Очень хорошая подач, учит писать чисты код. Большое спасибо. НО первый раз встретился с Spring Security and JPA. В некоторых моментах непонятно что это и зачем нужно.
@Akjanovy
@Akjanovy 7 жыл бұрын
Такое большое спасибо, за пример. Если кто такой же балбес как и я не может найти SpringMVC шаблон или Tomcat server, то это потому, что в Community edition их нет. Пришлось покупать...
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Ерлан. В принципе, можно было не полкупать Ultimate, а просто смириться с выходом из IDEA каждые 30 минут. Для новичка не критично. Но, если есть возможность, то конечо.
@qwd412
@qwd412 7 жыл бұрын
в гугл Idea license server и при первом запуске идеи оно просит ключ или лиценз сервер, гуглиш лиценз сервер для идеи КТЛ+С +В вот лицуха безплатная
@RuslanZinovyev
@RuslanZinovyev 7 жыл бұрын
Евгений, спасибо за урок. Очень наглядно. Вопрос по валидатору, насколько я знаю валидацию можно и через форму представления настроить, не обязательно прописывать его так как в данном примере?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Дорый день, Руслан. Спасибо за отзыв. Да, конечно, обычно валидация формы происходит на клиенте (на уровне фронтенда), чтобы не нагружать сервер заведомо не корректными запросами. А на сервере проверяются уже значения, проверка Nonnull и т.д.
@dddryinside
@dddryinside Жыл бұрын
А почему нельзя было сделать только одну таблицу users, где было бы поле user_role? Тогда не нужно было бы создавать ещё 2 таблицы...
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Можно, это как один из вариантов. Спасибо за комментарий!
@romanhaivaronski2034
@romanhaivaronski2034 6 жыл бұрын
No message found under code 'Size.userForm.login' for locale 'ru_RU'. Весь стак перелопатил, все перепробовал, но не могу решить ошибку с переходом в локаль русскую. делал и несколько файлов с сообщениями _ru_Ru та же ошибка. Хелп, если было когда-нибудь такое
@stangevg
@stangevg 6 жыл бұрын
Почему у меня не подключаются CSS? Кто сталкивался, что делал?
@LiflexMiyh
@LiflexMiyh 6 жыл бұрын
Лайк
@РоманГапонов-л5й
@РоманГапонов-л5й 6 жыл бұрын
Над полем confirmPassword есть аннотация @Transient, разве обязательно ей еще дописывать transient слева?
@4val0v
@4val0v 6 жыл бұрын
Автор дальше по видео это заметил убрал, оставил только аннотацию
@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 ??
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
We use Spring Data here.
@DeamondGod865
@DeamondGod865 3 жыл бұрын
почему не подлючаеться _csrf и он cant resolve
@tisem2
@tisem2 7 жыл бұрын
Подскажите пожалуйста как сделать обработку, если мне нужно поле email вместо userName, нужно свой метод findByEmail() написать?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Добрый вечер. Именно. При работе со SpringData - это становится крайне просто.
@PassageGamesRus
@PassageGamesRus 8 жыл бұрын
Отличное видео! Как заменить страницу ошибки доступа на сообщение, что нет прав? И можно видео, как на основе этого 'сервера' сделать станделон приложение и реализовать там регистрацию.
@ihorkazakov
@ihorkazakov 8 жыл бұрын
Евгений здравствуйте! Если можно добавьте к уроку кнопку "Reset password". Пользователь забыл пароль -> клик по кнопке -> ввод емейла -> отправляется письмо на указаний адрес с ссылкой -> переход по ссылке и ввод нового пароля.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
День добрый. Валидация с помощью email будет уже в будущих видео. Цель этого урока - показать базовые элементы Spring Security.
@4val0v
@4val0v 6 жыл бұрын
Здравствуйте, есть ли продолжение ?
@hal1on824
@hal1on824 6 жыл бұрын
Для чего нужен файл logback.xml?
@alexandersmirnov4274
@alexandersmirnov4274 7 жыл бұрын
Евгений а как задается соль для кодирования пароля?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Добрый день, Александр. Для кодирования пароля используется алгоритм BCRYPT, с помощью которого мы шифруем пароль в сервисном слое.
@alexandersmirnov4274
@alexandersmirnov4274 7 жыл бұрын
да это понятно но ведь этот алгоритм должен использовать соль для шифрования пароля откуда он берет соль по умолчанию что ли?
@alexxis246
@alexxis246 7 жыл бұрын
Я думаю, что ты уже догадался заглянуть в исходники? Если нет, то погляди. Если лень - то encode сам генерирует соль по своим алгоритмам.
@Andrzej3935
@Andrzej3935 2 жыл бұрын
Спасибо!
@КириллЛомовской
@КириллЛомовской 5 жыл бұрын
когда добавляешь артифакт, надо указать апликейшен контекст "/" а по умолчанию стоит имя проекта
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
Да, справедливое замечание. Спасибо.
@McMeil
@McMeil 7 жыл бұрын
Спасибо. хороший урок. Буду благодарен, если ответите на вопросы ниже: 1. Могли бы вы более детально про кодировку рассказать, а именно как мы получили значение '$2a$11$uSXS6rLJ91WjgOHhEGDx..VGs7MkKZV68Lv5r1uwFu7HgtRn3dcXG' из '12345678' 2. есть ли вариант обойтись без web.xml (я так понимаю через SpringConfig) и можете ли Вы про него рассказать в контексте этого урока. В любом случае огромное спабо за такой урок.
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
1. Мы кодируем введённый пользователем пароль с помощью bCrypt - можем использовать другой алгоритм шифрования. Человек вводит праоль - мы его сразу шифруем - и записываем результат в БД. 2. Есть вариант конфигурирования с помощью класса, но лично я считаю, что конфигурационные файлы более лучший способ и проекты на которых работал использовали именно такой подход. А конфигурирование с помощью Java класса можете погуглить и найдёте ответ без проблем. Пожалуйста. Успехов вам в изучении.
@McMeil
@McMeil 7 жыл бұрын
Eugene Suleimanov так и сделаю) спасибо
@ВладимирБобко-ь5в
@ВладимирБобко-ь5в 7 жыл бұрын
Евгений здравствуйте. подскажите как в вашем приложении можно сделать, чтобы данные с сервера отдавались в формате JSON?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
День добрый, Владимир. Если делать всё более серьёзно, то необходимо реализовать REST API и там уже и работать с JSON. Но, это более обширная тема.
@ВладимирБобко-ь5в
@ВладимирБобко-ь5в 7 жыл бұрын
спасибо
@provinceskateboards5006
@provinceskateboards5006 4 жыл бұрын
500 error при попытке добавить пользователя, при попытки логина с username=proselyte и password=12345678. В mySQL таблицы все созданы, в идее конекшн с базой установлен. Файл database.properties отредактирован под подключение к моей базе. В чем может быть дело?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Недостаточно информации- нужен более подробный лог
@rusmemes
@rusmemes 8 жыл бұрын
супер! просто супер!
@user-cx5ry5tt6s
@user-cx5ry5tt6s 4 жыл бұрын
Актуально ?
@perfect_human2664
@perfect_human2664 Жыл бұрын
Здравствуйте, для весны 2023 года этот урок ещё актуальный?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Добрый день! В части секьюрити - только как концепция. В части технологий для работы я бы рекомендовал посмотреть это видео: kzbin.info/www/bejne/nauXfK2norSfl9k
@perfect_human2664
@perfect_human2664 Жыл бұрын
@@EugeneSuleimanov спасибо больше за совет, только сейчас заметил ваш ответ. P.s. В универе просто должен сделать веб проект, решил делать на джаве😅 Спасибо ещё раз.
@victormog
@victormog 7 жыл бұрын
Видео отличное! Однако Вы так лихо вставили из буфера необходимые зависимости в POM-файл, а для меня, например, это самое непонятное в Spring... Может есть что именно по этой теме?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Добрый вечер, Виктор. По поводу maven - можете почитать туториал: proselyte.net/tutorials/maven/ В данном случае - мы только подтягиваем зависимости. Вместо того, чтобы вручную ипортировать jar-файлы - мы поручаем это maven.
@victormog
@victormog 7 жыл бұрын
Наткнулся на замечательный сайт: mvnrepository.com/ Находишь нужный пакет нужной версии и можно сразу скопировать блок кода для зависимостей POM-файла.
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Да, без этого сайта сложновато :)
@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 жыл бұрын
Точно, я об этом не подумал. Спасибо большое.
@Ilyas377
@Ilyas377 5 жыл бұрын
Спасибо за видео, но объясните каждый класс для чего нужен.
@d-fyz
@d-fyz 7 жыл бұрын
Будьте добры продолжить это видел с использованием Spring Social
@Skykvi
@Skykvi 2 жыл бұрын
Большое человеческое спасибо. :) Возможно ли сделать урок по конфигурации без xml, аннотациями и java класс.
@EugeneSuleimanov
@EugeneSuleimanov 2 жыл бұрын
Спасибо за отзыв :) На канале уже есть такое видео с REST API.
@integra0128
@integra0128 10 ай бұрын
Java отказывается создавать бин AuthenticationManager, из-за этого не запускается вручную не создается, тк интерфейс не может быть инстанциирован
@korshun1984
@korshun1984 5 жыл бұрын
Подскажите, в контроллере в аргументы функций передаем некую Model. Это шо такое ?
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
model - грубо говоря - Map, в которую мы можем записать нужные значения с любыми ключами. И на странице, с которой связан этот метод контроллера, нам будут доступны эти значения, по указанным ключам. Это если на пальцах. Если более подробно, то docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/ui/Model.html
@korshun1984
@korshun1984 5 жыл бұрын
Оперативно, спасибо!
@ВладимирБобко-ь5в
@ВладимирБобко-ь5в 7 жыл бұрын
Но такой реализацией классов можно воспользоваться? и переделать контроллер?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Здраствуйте, Владимир. Да, конечно. Рпиложение ведь работает.
@wetergshsghsfghsfh
@wetergshsghsfghsfh 4 жыл бұрын
Было бы здорово, если при регистрации нового пользователя можно было бы выбирать роль, а не назначать ее по-умолчанию.
@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 7 жыл бұрын
С другой стороны сразу пользователя информирует о проблемах. Не нужно будет ему "каждую ошибку проходить отдельно".
@azattezekbaev2807
@azattezekbaev2807 6 жыл бұрын
Спасибо за урок. Для того, чтобы понять в чем суть, нужно иметь фундаментальные знания по Java, Spring Core, JPA, Security, если эти знания будут, то будет ясно что к чему. У меня вопрос, к автору видео. Почему в коде нет конроллера и экшена для обработки данных из формы login.jsp?
@wvvwwwvvw
@wvvwwwvvw 8 жыл бұрын
3:45 - как мы подтянули с версиями зависимостей? Я пишу properties и таб, но у меня просто тег открылся-закрылся.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
ctrl + c, ctrl + v Крайне долго объяснять все зависимости. Исходный код программы вы можете изучить здесь: github.com/proselytear/SpringSecurityApp
@wvvwwwvvw
@wvvwwwvvw 8 жыл бұрын
Спасибо.
@victormog
@victormog 7 жыл бұрын
Оффтоп: Евгений, нет ли желания рассмотреть работу с _Apache POI_?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Добрый вечер. Как-то не особо :)
@victormog
@victormog 7 жыл бұрын
Жаль... :-)
@victordelacroix654
@victordelacroix654 3 жыл бұрын
Учу Java 3-ий месяц... неужели когда-то это всё я начну понимать :)))))
@EugeneSuleimanov
@EugeneSuleimanov 3 жыл бұрын
Если продолжать изучать, то да :)
@Сергей-и2
@Сергей-и2 Жыл бұрын
Забей на время. 1 год и 2 месяца..сейчас тут..у Автора классная подача
@maxwoo12323
@maxwoo12323 6 жыл бұрын
А зачем делать связь "Many-to-many"? Разве у пользователя может быть сразу несколько ролей?
@stangevg
@stangevg 6 жыл бұрын
Например Админ имеет две роли, как админа, так и пользователя. Мне это удобно для проекта.
@maxwoo12323
@maxwoo12323 6 жыл бұрын
Спустя день, после задания вопроса, столкнулся с необходимостью в такой же реализации.) Но есть другой нюанс в настройке userDetailService. Прояснишь несколько вопросов? Вот телеграм t.me/ANDREW_TUR
@lunamarsword
@lunamarsword 6 жыл бұрын
thank you!
@Ант0н_128
@Ант0н_128 7 жыл бұрын
спасибо. Много времени на комментарии уходит.
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Пожалуйста, Антон. Можно было бы и совсем молча, но, это же учебное видео :)
@Ант0н_128
@Ант0н_128 7 жыл бұрын
Хамите... Да, это учебное видео. Про Spring security. Понятно, что комментарии хорошо писать в рабочем коде. Но тут видео о Spring security, а не про clear code.
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
И не думал хамить, Антон. Прошу прощения, если так показалось.
@matroskin2406
@matroskin2406 5 жыл бұрын
Отличный пример! Плохо только, что конфигурация через xml
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
Спасибо за отзыв. По поводу xml - с него все начиналось, поэтому решил показать с истоков :)
@matroskin2406
@matroskin2406 5 жыл бұрын
@@EugeneSuleimanov так может пора записать новый видос? )
@dimatarasiuk7842
@dimatarasiuk7842 7 жыл бұрын
Вы очень классный учитель, много научился по Вашим видео, особенно паттерны. И отдельное большое спасибо за то что Вы пишите код в реальном времени, таким образом на много лучше доходит! И если можно немножко больше объяснять {почему так, а не иначе} И скажите пожалуйста большая ли будет разница если использовать Gradle вместо Maven?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Спасибо за отзыв, Дима. Нет, сборщик не играет особой разницы - главное, чтобы не Ant - там своя атмосфера :)
@ДмитрийШарыгин-с9й
@ДмитрийШарыгин-с9й 5 жыл бұрын
Никак не могу понять зачем все так усложнять? Dao, reposiroty и repositoryImpl) Обьясните пожалуйста
@dmytrokopan3833
@dmytrokopan3833 5 жыл бұрын
kzbin.info/www/bejne/in7Yn6Jrh7-Bm6c
@KomplikevychOstap
@KomplikevychOstap 4 жыл бұрын
Ля, я столько искал подобний канал, где не пишут на спринге програми типа хелоу ворлд, хотя ета тоже не сложна, но вот хотя би разние технологии используются.. Спасибо большое.. Если можно, сделайте видео об простеньком серверном приложении на спринге (ну прям очень простом) , которое будет работать на REST архитектуре, и реагирувать на риквест от клиентского приложения(также простенькая програмка). Я просто еще учусь и мне чето сложно сделать клиент, (серверное приложение протестирувал с помощью Postman, json-и прилетали), а вот с собственним клиентом нифига не работает(
@ВладимирЧёрненький-я3е
@ВладимирЧёрненький-я3е 4 жыл бұрын
Евгений, отличный урок, спасибо! Возможно у Вас есть где-нибудь пример конфигурации с помощью классов, без .xml? Всё то же самое, только Java config: web.xml appconfig-root.xml appconfig-mvc.xml appconfig-data.xml appconfig-security.xml Заранее спасибо!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв, Владимир. kzbin.info/www/bejne/r4PRhIh6rZiMbs0 Здесь несколько, иной подход, но конфигурация реализована с использованием классов.
@ВладимирЧёрненький-я3е
@ВладимирЧёрненький-я3е 4 жыл бұрын
Спасибо за ответ, Евгений, буду разбираться.
@VolodymyrBohutskyi-e4l
@VolodymyrBohutskyi-e4l 8 жыл бұрын
Подскажите, где можно скачать исходные коды проекта?
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Здраствуйте, Владимир. Ссылки есть в описании проекта и продублирую ещё раз здесь: Исходный код проекта: proselyte.net/wp-content/uploads/2016/08/SpringSecurityApp.zip Ссылка github: github.com/proselytear/SpringSecurityApp
@Олексій-о8ц
@Олексій-о8ц 7 жыл бұрын
Доброго времени суток, никак не могу устранить ошибку(org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/appconfig-data.xml]: Cannot create inner bean 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#2d95ddee' of type [org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter] while setting bean property 'jpaVendorAdapter'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#2d95ddee' defined in ServletContext resource [/WEB-INF/appconfig-data.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/ejb/HibernatePersistence ), в чем может быть проблема?
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Добрый день, Алексей. Проверьте версии зависимостей, указаные вами в проекте. Они должны совпадать с указанными в коде.
@Олексій-о8ц
@Олексій-о8ц 7 жыл бұрын
Спасибо, получилось. Также спасибо за хорошее детальное видео. С нетерпением буду ждать следующие выпуски. Вдохновения Вам.)
@ms_shifu7047
@ms_shifu7047 Жыл бұрын
thanks
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@sviatoslavnaida89
@sviatoslavnaida89 7 жыл бұрын
можете сделать пример типа социальной сети пару юзеров что видит пользователь что друзья и тд на Spring security
@sviatoslavnaida89
@sviatoslavnaida89 7 жыл бұрын
видео очень хорошоє давно искал подобное, спасибо большое... интересует еще как можно чтобы на главную страницу можно было заходить всем анонимным пользователям без регистации
@klerg321
@klerg321 5 жыл бұрын
Смотреть с 29той минуты :)
@EugeneSuleimanov
@EugeneSuleimanov 5 жыл бұрын
в идеале - с 74й ))
@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); }
@АлексейРусанов-у9т
@АлексейРусанов-у9т 5 жыл бұрын
@@ilgiz.faritovich Влассе приложения который обычно аннотирован @SpringBootApplication добавьте метод @PostConstruct void started() { //тут заполняйте таблицу, предварительно проверив есть ли в ней данные } Костыль конечно но сойдет
@MrAivan87
@MrAivan87 8 жыл бұрын
"А сравнивать данные стоит другим способом". Каким? Если это можно описать несколькими словами, ну или подскажите где посмотреть. Спасибо.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Смотря что именно необходимо сравнить. Необходимо боллее полное описание самой задачи.
@MrAivan87
@MrAivan87 8 жыл бұрын
Есть параметры, которые не уникальны - имя, фамилия и т.п., есть параметры, которые уникальны - к примеру телефон пользователя, email... При попытке регистрации пользователя с уже зарегистрированным уникальными данными должно выдаваться сообщения, что-то типа: "пользователь с таким телефоном уже существует!"
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
Сделайте данные уникальными в БД и обработайте exception. Примерно так.
@MrAivan87
@MrAivan87 8 жыл бұрын
Спасибо.
@EugeneSuleimanov
@EugeneSuleimanov 8 жыл бұрын
MrAivan87 Пожалуйста, Иван :)
@reasantreasant5572
@reasantreasant5572 3 жыл бұрын
Благодарю за видео, но этот гайд внес еще больший сумбур в то, что было раньше. У меня после примерно 10 часов просмотров видео на эту тему так и не появилось понимание что вообще происходит. За 15 минут код обрастает десятком классов и интерфейсов, все это сопровождается скудными комментариями по типу "это и так понятно" или "объяснять не надо". Как в этом зоопарке разобраться до сих пор не понимаю(
@EugeneSuleimanov
@EugeneSuleimanov 3 жыл бұрын
На канале есть видео по основам Spring Security. Для начинающих имеет смысл посмотреть его. Спасибо за отзыв!
@РоманИванов-ъ2з
@РоманИванов-ъ2з Жыл бұрын
Автору спасибо, но как по мне уж очень много ты сделал настраивающий папок и прочее, тем более такой не густой функционал можно сделать намного проще
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий и отзыв! Да, сейчас написал бы куда проще :)
@egorbzhosko1089
@egorbzhosko1089 7 жыл бұрын
Помогите с ошибкой: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/appconfig-data.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; Замапил все как надо, зависимости те же, что вы прописывали... Выскакивает такая: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/appconfig-data.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
1. Проверьте правильность указанаия данных для подключения к БД. 2. Проверьте соответствие версий зависимостей указанных в проекте. Возможен конфликт версий. 3. Желательно скинуть более полный лог.
@egorbzhosko1089
@egorbzhosko1089 7 жыл бұрын
Проблема решилась созданием проекта заново) Еще вопрос, как поменять загрузочную страницу /login, допустим сразу на /welcome , а там уже была бы доступна ссылка на логирование ?
@egorbzhosko1089
@egorbzhosko1089 7 жыл бұрын
К тому же не получается обработать json, посылаю данные на сервер, а они до контроллера даже не доходят
@EugeneSuleimanov
@EugeneSuleimanov 7 жыл бұрын
Посмотрите security config (xml файл). Укажите, что на страницу /welcome имеют доступ все юзеры.
@Олексій-о8ц
@Олексій-о8ц 7 жыл бұрын
Подскажи пожалуйста как исправил ошибку, у меня такая же, не могу устранить.
Остановили аттракцион из-за дочки!
00:42
Victoria Portfolio
Рет қаралды 3,4 МЛН
哈莉奎因怎么变骷髅了#小丑 #shorts
00:19
好人小丑
Рет қаралды 50 МЛН
Аутентификация - Spring Security в деталях
1:05:16
Уголок сельского джависта
Рет қаралды 30 М.
Авторизация - Spring Security в деталях #java #spring #springsecurity #abac #rbac #authorization
1:22:58
Spring Security: Spring Security + REST + JWT
1:52:13
Александр Фисунов
Рет қаралды 46 М.
Остановили аттракцион из-за дочки!
00:42
Victoria Portfolio
Рет қаралды 3,4 МЛН