Отличный канал, смотреть интересно. Но трудно, потому что вы редко объясняете, что и для чего делаете, перед тем, как это сделать, и приходится догадываться, исходя из контекста и кода, а некоторое остается не понятно и приходится гуглить. Может стоит также попробовать формат, когда код уже написан, и просто объяснить, что в нем и для чего, думаю, так будет намного быстрей и понятней, чем писать в лайв режиме. Также, для некоторых моментов, я бы упоминал, что существуют альтернативные реализации.
Супер качественной информацией делишся, спасибо за контент! Есть правда что улучшать, но само содержание 10/10. Кстати, какая версия линукса у тебя ибыло бы здорово услышать что то от тебя на эту тему.
Очень классная подача материала! Спасибо за труд! добавил Security в свой проект с помощью Ваших видео ) Хотел уточнить на счет расширения класса User (Вы упоминали об этом в видео): я попробовал такой вариант и столкнулся с интересным поведением. Конструктор ApplicationUser вызывается дважды. Первый раз в конструктор передаются найденные логин и пароль. Второй раз в конструктор передаются null. Никак не могу разобраться почему так происходит. Нужно ли в случае расширения модели User сделать еще какие-то "приседания"? ))
Добый день! Сначала хотелось бы очень поблагодарить вас за ваш труд. Спасибо огромное! Есть вопросы. 1)Я правильно понимаю, что тесты и так проходили бы, если бы мы в запросах указывали пользователей, которых нет в бд, то есть без BasicAutheticationFilter нет никакого взаимодействия с UserDetails, то есть если поставить точку останову в методе, где мы берем пользователя по username, туда мы не провалимся, верно? Зачем мы тогда этотреализовываем? 2) Получается, что post методы не падают на этапе аутентификации с ошибкой 401,они сразу падают с 403 ошибкой авторизации, потому что если убрать из запроса в тестах пост методов пользователя, то тест все равно падает с 403 ошибкой, верно? А вот гет методы требует аутентификацию, так получается?
Каждый сам решает, что ему удобнее, но JdbcTemplate - это универсальный инструмент для выполнения запросов, а MappingSqlQuery - специализированный инструмент для select-запросов
Бин конфига безопасности (до этапа добавления связки задач с пользователями) выполнен аналогично представленному в видео, в тестах стоит .with(httpBasic("user", "password")), в конфиге тестов в yml указано spring.security.user: password. Однако при запуске интеграционного теста на получение списка задач возникает 401 Unauthorized. В чем может быть дело? Может быть выполнены еще какие-то хитрые настройки, которые остались за кадром?
40 минут потерянного времени, а была реальная надежда. Изложение действий простое. Но, полное отсутствие системного подхода все портит. Нет ни объяснения, что такое аутентикэйшен провайдер(и что их может быть несколько), ни то, как через них происходит пользовательская аутентификация. Не раскрыта информация по фильтрам(сказал лишь пару слов). Про ролевую модель вообще молчу (про нее ни слова). Получается, что пользователям выдается доступ к Rest-ам, а не ролям, как довольно часто это делается. Нет информации о конфигурации доступа к Rest-ам пользователей/ролей, а так же где она может храниться (в БД или к-н xml файле в сборке). Автор - молодец, что старается. Но, все это в конечном итоге выглядит, как каша и без масла.
Рекомендую обратить внимание на название ролика, там не спроста есть "по верхам", так как я и не собирался рассказывать всё в деталях. Чтобы рассказать в деталях о процессе аутентификации в spring security и его внутреннем устройстве нужно сильно больше времени. И я постараюсь это сделать в отдельной серии роликов, посвящённой spring security.
Полностью согласен с коментом, дело не в том, по верхам или нет, а в том, что вы углубляетесь в конкретную реализацию, которая вам понятна, но думаю тот, кто смотрит такие видео, не понимает, потому и смотрит, но вы не даете никаких объяснений, что и для чего, просто пишите код, который например можно посмотреть и на гитхабе или медиуме, а не тратить время, чтобы следить за его написанием. Было бы хорошо, если бы вы уделяли меньше внимания конкретной реализации и больше внимания объяснению. Видно, что вы хорошо шарите, но описанная особенность сильно портит впечатление от канала, видео тяжело смотреть и приходитмя постоянно следить, что вы делаете, иначе ничего не понятно, так как вы не объясняете. Мне кажется, если бы вы исправили этот момент, канал бы стал одним из лучших по спрингу. В качестве хорошего примера, из недавно просмотренных мной- видео Angular 14 Быстрый Курс, там с форматом подачи все супер, если вам интересно, можете загуглить это видео, ну или любое видео с канала letscode и подобных.
Отличное видео. Спасибо за труды!
Благодарность за время и знания!
Шикарное видео, спасибо)
Отличный канал, смотреть интересно. Но трудно, потому что вы редко объясняете, что и для чего делаете, перед тем, как это сделать, и приходится догадываться, исходя из контекста и кода, а некоторое остается не понятно и приходится гуглить. Может стоит также попробовать формат, когда код уже написан, и просто объяснить, что в нем и для чего, думаю, так будет намного быстрей и понятней, чем писать в лайв режиме. Также, для некоторых моментов, я бы упоминал, что существуют альтернативные реализации.
Смотрите более свежие ролики)
спасибо за видео!
Супер качественной информацией делишся, спасибо за контент! Есть правда что улучшать, но само содержание 10/10.
Кстати, какая версия линукса у тебя ибыло бы здорово услышать что то от тебя на эту тему.
Спасибо за комментарий) Последние годы пользуюсь Linux Mint, может быть, сниму ролик о его использовании
@@shurik_codes Почему вы пользуетесь линуксом, а не windows?
Спасибо за видео!
Спасибо за видео! Побольше просмотров роликам.
Полезные моменты для себя взял на вооружение, а так же понял куда нужно копнуть поглубже.
Очень классная подача материала! Спасибо за труд! добавил Security в свой проект с помощью Ваших видео )
Хотел уточнить на счет расширения класса User (Вы упоминали об этом в видео): я попробовал такой вариант и столкнулся с интересным поведением. Конструктор ApplicationUser вызывается дважды. Первый раз в конструктор передаются найденные логин и пароль. Второй раз в конструктор передаются null. Никак не могу разобраться почему так происходит. Нужно ли в случае расширения модели User сделать еще какие-то "приседания"? ))
Обычно нет, не надо, надо трассировку вызовов смотреть, откуда инициируется вызов с аргументами null
Добый день! Сначала хотелось бы очень поблагодарить вас за ваш труд. Спасибо огромное! Есть вопросы. 1)Я правильно понимаю, что тесты и так проходили бы, если бы мы в запросах указывали пользователей, которых нет в бд, то есть без BasicAutheticationFilter нет никакого взаимодействия с UserDetails, то есть если поставить точку останову в методе, где мы берем пользователя по username, туда мы не провалимся, верно? Зачем мы тогда этотреализовываем? 2) Получается, что post методы не падают на этапе аутентификации с ошибкой 401,они сразу падают с 403 ошибкой авторизации, потому что если убрать из запроса в тестах пост методов пользователя, то тест все равно падает с 403 ошибкой, верно? А вот гет методы требует аутентификацию, так получается?
Вроде сейчас используется JdbcTemplate вместо MappingSqlQuery
Каждый сам решает, что ему удобнее, но JdbcTemplate - это универсальный инструмент для выполнения запросов, а MappingSqlQuery - специализированный инструмент для select-запросов
Бин конфига безопасности (до этапа добавления связки задач с пользователями) выполнен аналогично представленному в видео, в тестах стоит .with(httpBasic("user", "password")), в конфиге тестов в yml указано spring.security.user: password. Однако при запуске интеграционного теста на получение списка задач возникает 401 Unauthorized.
В чем может быть дело? Может быть выполнены еще какие-то хитрые настройки, которые остались за кадром?
напомни пожаллуйста, для чего приставка c_ ? like c_username , c_password
c_ - обычная колонка, id_ - идентификатор, привычка из практики
'csrf()' is deprecated since version 6.1 and marked for removal
ruclips.net/video/ZHSZ6NqLpMc/видео.html
40 минут потерянного времени, а была реальная надежда. Изложение действий простое. Но, полное отсутствие системного подхода все портит. Нет ни объяснения, что такое аутентикэйшен провайдер(и что их может быть несколько), ни то, как через них происходит пользовательская аутентификация. Не раскрыта информация по фильтрам(сказал лишь пару слов). Про ролевую модель вообще молчу (про нее ни слова). Получается, что пользователям выдается доступ к Rest-ам, а не ролям, как довольно часто это делается. Нет информации о конфигурации доступа к Rest-ам пользователей/ролей, а так же где она может храниться (в БД или к-н xml файле в сборке). Автор - молодец, что старается. Но, все это в конечном итоге выглядит, как каша и без масла.
Рекомендую обратить внимание на название ролика, там не спроста есть "по верхам", так как я и не собирался рассказывать всё в деталях. Чтобы рассказать в деталях о процессе аутентификации в spring security и его внутреннем устройстве нужно сильно больше времени. И я постараюсь это сделать в отдельной серии роликов, посвящённой spring security.
Полностью согласен с коментом, дело не в том, по верхам или нет, а в том, что вы углубляетесь в конкретную реализацию, которая вам понятна, но думаю тот, кто смотрит такие видео, не понимает, потому и смотрит, но вы не даете никаких объяснений, что и для чего, просто пишите код, который например можно посмотреть и на гитхабе или медиуме, а не тратить время, чтобы следить за его написанием. Было бы хорошо, если бы вы уделяли меньше внимания конкретной реализации и больше внимания объяснению. Видно, что вы хорошо шарите, но описанная особенность сильно портит впечатление от канала, видео тяжело смотреть и приходитмя постоянно следить, что вы делаете, иначе ничего не понятно, так как вы не объясняете. Мне кажется, если бы вы исправили этот момент, канал бы стал одним из лучших по спрингу. В качестве хорошего примера, из недавно просмотренных мной- видео Angular 14 Быстрый Курс, там с форматом подачи все супер, если вам интересно, можете загуглить это видео, ну или любое видео с канала letscode и подобных.
'sessionManagement()' is deprecated since version 6.1 and marked for removal
ruclips.net/video/ZHSZ6NqLpMc/видео.html
'and()' is deprecated since version 6.1 and marked for removal
ruclips.net/video/ZHSZ6NqLpMc/видео.html