Авторизация - Spring Security в деталях

  Рет қаралды 12,906

Уголок сельского джависта

Уголок сельского джависта

Күн бұрын

Представить себе информационную систему, в которой все пользователи имеют одинаковые неограниченные права практически невозможно - в абсолютном большинстве информационных систем пользователи обладают разными правами, в зависимости от выполняемых задач. Авторизация обеспечивает предоставление полномочий пользователям, а так же проверку их наличия у пользователя при необходимости. В этом ролике я постарался рассказать, что такое авторизация, какие основные способы её реализации существуют, а так же рассмотрел применение Spring Security для обеспечения авторизованного доступа к HTTP-эндпоинтам и методам.
00:00:00 Вступление
00:00:19 Что такое авторизация
00:02:20 Подходы к реализации авторизации
00:13:18 HTTP-авторизация
00:44:26 Защита методов
01:15:07 Иерархии прав
#java #spring #springsecurity #abac #rbac #authorization #авторизация
Мой сайт: alexkosarev.name/
Паблик в VK: public218833461
Канал в Telegram: t.me/+TZCuO38vG3oqu_Jq
Стать доном: donut/shurik.codes
Донаты в Boosty: boosty.to/akosarev/purchase/1...
Донаты в Tinkoff: www.tinkoff.ru/cf/4PEOiVCZQuS

Пікірлер: 59
@aleksandrkrasnobaev
@aleksandrkrasnobaev 8 ай бұрын
Александр, вы выпускаете невероятно крутые видео. Особенно сильно я обалдел, когда в одном из них вы упомянули Стаса Асафьева. Невольно пробежала мысль: "Вот это да, теперь осталось дождаться, когда стасян в своей документалке упомянет сельского джависта". Спасибо вам огромное
@speedygonz4les
@speedygonz4les Ай бұрын
Краааайне годное видео. Спасибо, что потратил время на запись, уверен ты потратил далеко не полтора часа :D
@user-hb9od6th1d
@user-hb9od6th1d 8 ай бұрын
полтора часа кайфа
@shurik_codes
@shurik_codes 8 ай бұрын
Да ну бросьте меня так нахваливать, а то щёчки аж покраснели xD
@pilotivanovich
@pilotivanovich 2 ай бұрын
прекрасная лекция, были проблемы с переходом на Spring Boot 3, теперь многие препоны сняты, спасибо
@stanislavkuzmin8211
@stanislavkuzmin8211 8 ай бұрын
Спасибо за труд! Продолжай в том же духе) было бы интересно узнать, как вообще пришел к Java, как рос от Джуна до текущей должности, как прокачиваешь скилы)
@aleksandrkrasnobaev
@aleksandrkrasnobaev 8 ай бұрын
Было бы еще очень круто увидеть от вас видео по работе с протоколом websocket
@sagiems
@sagiems 8 ай бұрын
Отличный ролик ! Очень хорошо все рассказано, понятно и ёмко. Смотрится как хороший фильм - на одном дыхании )) Огромное Спасибо, Александр !
@user-kk1sz2ng1d
@user-kk1sz2ng1d 8 ай бұрын
отлично, спасио за очередную порцию годноты!
@Fantast51
@Fantast51 8 ай бұрын
Как всегда отлично! Жду ролик про ACL.
@sonicbodik1705
@sonicbodik1705 8 ай бұрын
очень круто и качественно, все по делу, спасибо тебе огромное:3
@user-tt3vu5ob7g
@user-tt3vu5ob7g 8 ай бұрын
Четкое объяснение! Благодарность за труд и время
@user-is9sc3uk1o
@user-is9sc3uk1o 6 ай бұрын
Топовые видео по Security! И свежее что очень важно!
@dmitrelkin9256
@dmitrelkin9256 8 ай бұрын
Спасибище! очень в тему! давно ждал ))
@alexshutov5442
@alexshutov5442 8 ай бұрын
Спасибо
@pashamironenko6757
@pashamironenko6757 4 ай бұрын
Про dispatcherTypeMatchers хотелось бы больше информации. Как раз столкнулся с проблемой, когда тип asynk (и запрос всегда падал с 403), ну и как выход был permitAll. Но внутренности сего процесса остались неясны. А в целом отличные видео, очень много именно нужной информации в структурном виде Огромное спасибо!
@bryanin
@bryanin 8 ай бұрын
Очень круто! Как насчёт полного курса по спрингу?)
@shurik_codes
@shurik_codes 8 ай бұрын
Отвечу стандартно: было бы время)
@romanovichihin2429
@romanovichihin2429 8 ай бұрын
Лайк, коммент🎉
@front-endpadavan4421
@front-endpadavan4421 8 ай бұрын
Отличный канал с крутым контентом! Подписка и лайк однозначно. Скажите, планируются ли видео по reactive programming? Также очень интересует Debezium, Apache Camel, Flink и Spark.
@shurik_codes
@shurik_codes 8 ай бұрын
Про реактивное программирование будет, про Apache Camel, возможно, тоже
@Elteruin
@Elteruin 8 ай бұрын
Уважаемый, будь те так любезны выпустить видео про Hibernate. Используют или нет Criteria API, основные практики и т.д. Хотелось бы знать, на чём лучше сконцентрировать внимание.
@shurik_codes
@shurik_codes 8 ай бұрын
Я на практике не использую JPA/Hibernate, но пожелание учту)
@EvaVagner84
@EvaVagner84 5 ай бұрын
Учим яву, не расстраиваем Чака😂
@aidar119
@aidar119 6 ай бұрын
Тяжело читать шрифт, поменяй пожалуйста на обычный какой нибудь, а так видео топ
@user-lg9wf8sy9t
@user-lg9wf8sy9t 8 ай бұрын
@shurik_codes Александр, спасибо огромное за контент! ❤ Очень информативно! 21:53 Скажите, планируется ли ролик по работе с CAS? И, может быть, SAML?
@shurik_codes
@shurik_codes 8 ай бұрын
Да, блиииин... Ещё две темы в планы надо добавлять)
@GenesizANT
@GenesizANT 8 ай бұрын
Безумно полезное видео, автору низкий поклон! У меня вопрос насколько целесообразно давать доступы и через http и через аннотации в одном приложении?
@shurik_codes
@shurik_codes 8 ай бұрын
Иногда встречаются ситуации, когда объединение техник авторизации может быть удобным, особенно, когда речь идёт о постфильтрации или поставторизации (@PostFilter и @PostAuthorize). В целом нет ничего плохого в комбинировании этих техник, хотя в большинстве случаев, на мой взгляд, можно обойтись какой-то одной.
@IlyaSlezkin
@IlyaSlezkin 3 ай бұрын
классный видос, но вешать авторайзы в сервисах - жесть какая то). Если это сервисы будут использоваться внутри приложения, везде надо будет авторизоваться?) Даже представить себе кейс не могу короче такой)
@shurik_codes
@shurik_codes 3 ай бұрын
Не вижу никаких проблем, абсолютно нормальное и рабочее решение, аутентификацию пройти нужно всего один раз, контекст безопасности хранится в рамках запроса и может быть получен в любой момент, в том числе и для проверки доступа
@IlyaSlezkin
@IlyaSlezkin 3 ай бұрын
@@shurik_codes зачем проходить аутентификацию внутри приложения? взаимодействие с другими приложениями происходит через рест апи же
@paulpollack9000
@paulpollack9000 6 ай бұрын
не плохой контент, но от паразитов б следует избавится, таких например как `соответственно` etc
@raynur256
@raynur256 7 ай бұрын
Привет, ты навешивал Pre/PostAuthorize на сервисы, а не на контроллеры, за этим скрывается какая-то логика? А так же чему спринг отдает приоритет если присутствуют и аннотации, и фильтер чейн?
@shurik_codes
@shurik_codes 7 ай бұрын
И @PreAuthorize и @PostAuthorize можно вешать и на контроллер (и не только), всё зависит от того, где хочется ограничивать доступ. Наивысший приоритет у фильтра авторизации.
@bestourtv1272
@bestourtv1272 8 ай бұрын
Добрый день! Спасибо за видео. Можно этот код в репозитории GitHub увидеть?
@shurik_codes
@shurik_codes 8 ай бұрын
К этому видео нет примеров кода
@kolyuchkin
@kolyuchkin 8 ай бұрын
Спасибо за видео. Можно ли аннотации фильтрации использовать "не по назначению", а, например, для изменения содержимого объектов коллекции? В качестве примера такой гипотетический кейс: возвращать весть список туду-шек (не только автора), но чужие туду-шки "деперсонализировать" (заменить имя автора на белиберду).
@shurik_codes
@shurik_codes 8 ай бұрын
Нет, изменять сами объекты средствами Spring Security не получится, но это можно сделать при помощи АОП: описать соответствующие точки среза, и в советах модифицировать данные
@dimkaddd7674
@dimkaddd7674 5 ай бұрын
Спасибо. Защита методов и HTTP оно все комбинируется в продакшине или выбирается один какой-то?
@shurik_codes
@shurik_codes 5 ай бұрын
Можно комбинировать, безопасность методов позволяет более тонко настраивать авторизацию, например, проверять доступ к загруженным из БД объектам, а HTTP-безопасность позволяет настроить авторизацию более общими правилами.
@user-jq5ez8vz2j
@user-jq5ez8vz2j 7 ай бұрын
Расскажите, пожалуйста, как использовать кастомные аннотации в авторизации. В аннотации задаются енам параметры (ресурс, действие), по которым через внешний сервис определяется имеет пользователь право доступа к методу или нет.
@shurik_codes
@shurik_codes 7 ай бұрын
АОП в помощь: в точках среза указывать (pointcut) перехватываемые аннотации, в советах (advice) реализовывать нужную логику
@user-jq5ez8vz2j
@user-jq5ez8vz2j 7 ай бұрын
То есть хотите сказать с помощью Spring Security такое невозможно сделать?
@shurik_codes
@shurik_codes 7 ай бұрын
@@user-jq5ez8vz2j чтобы строить поведение относительно кастомные аннотаций нужно АОП, а внутри можно использовать spring security
@user-jq5ez8vz2j
@user-jq5ez8vz2j 7 ай бұрын
@@shurik_codes не уверен, что это оптимальный путь. Но в любом случае было бы интересно посмотреть как правильно встроить СС в advice, чтоб аннотация отрабатывала полностью как @PreAuthorize например, как на обычных методах, так и на контроллерах.
@user-sj6hl1ye4r
@user-sj6hl1ye4r 7 ай бұрын
Правильно ли я понимаю, что spring security будет работать, если в качестве веб-сервера используется Tomcat (spring-boot-starter-web)? Например, если буду использовать в качестве веб-сервера Armeria, то spring security не будет ловить запросы.
@shurik_codes
@shurik_codes 7 ай бұрын
Насколько я понимаю, Armeria основан на Netty, предположу, что можно прикрутить Spring Security Reactive
@romans.a.6404
@romans.a.6404 5 ай бұрын
Подскажите, какой шрифт у вас
@shurik_codes
@shurik_codes 5 ай бұрын
JetBrains Mono
@1qxz
@1qxz 2 ай бұрын
один на нас другой на кавказ
@eapashkov
@eapashkov 8 ай бұрын
Ты на windows пересел?
@shurik_codes
@shurik_codes 8 ай бұрын
Нет, это Ubuntu Linux)
@eapashkov
@eapashkov 8 ай бұрын
напугал) Убранный вентилятор еле пережил, а тут переход на виндоус) @@shurik_codes
@psevdonim_youtube147
@psevdonim_youtube147 8 ай бұрын
Слишком длинные ролики, больше 20 минут не хочется смотреть(
@shurik_codes
@shurik_codes 8 ай бұрын
Кому-то нужны исчерпывающие ролики, кому-то коротенькие, к сожалению, угодить всем не могу
@psevdonim_youtube147
@psevdonim_youtube147 8 ай бұрын
знаю о таком, а если делать короткую версию и расширенную? будет больше контента, больше лайков и просмотров)@@shurik_codes
@shurik_codes
@shurik_codes 8 ай бұрын
@@psevdonim_youtube147 на это всё время надо, которого катастрофически не хватает
@denis-3
@denis-3 8 ай бұрын
Ставь на x2 если куда то спешишь. Человек всё подробно разбирает.
Access Control List (ACL) - Spring Security в деталях #springsecurity #java #acl #spring
59:17
Уголок сельского джависта
Рет қаралды 2 М.
Аутентификация - Spring Security в деталях
1:05:16
Уголок сельского джависта
Рет қаралды 27 М.
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 62 МЛН
Транзакции - Spring Framework в деталях
1:20:21
Уголок сельского джависта
Рет қаралды 21 М.
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 8 М.
Никита Летов - Используем @Transactional like a Pro
1:16:31
JPoint, Joker и JUG ru
Рет қаралды 52 М.
JWT-аутентификация для нативных приложений - Spring Security
1:20:22
Уголок сельского джависта
Рет қаралды 8 М.