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

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

Open in Telegram

Пишу на Java и Kotlin, иногда полную ерунду, люто топлю за Spring и чистую архитектуру. Консультирую. Чат: https://t.me/shurik_codes_group

Show more
2 044
Subscribers
No data24 hours
+37 days
+1930 days
Posts Archive
Cross-Site Resource Forgery (CSRF) - Spring Security Spring Security кроме аутентификации и авторизации предоставляет инструм
Cross-Site Resource Forgery (CSRF) - Spring Security Spring Security кроме аутентификации и авторизации предоставляет инструменты для противодействия эксплойтам, например, межсайтовой подделки запросов (Cross-site Resource Forgery; CSRF). В этом ролике я расскажу о природе CSRF-атак, продемонстрирую несколько примеров, а так же расскажу о том, как можно защититься от них, в том числе при помощи Spring Security. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Статья о маскировке CSRF-токена: https://alexkosarev.name/2023/01/12/spring-security-mask-csrf/ #java #springsecurity #csrf 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

JWT-аутентификация для веб-приложений - Spring Security В отличие от нативных приложений, веб-приложения самостоятельно не мо
JWT-аутентификация для веб-приложений - Spring Security В отличие от нативных приложений, веб-приложения самостоятельно не могут сохранять аутентификационные данные в безопасном месте, следовательно, продемонстрированный в предыдущем ролике способ получения ключей доступа не актуален для веб-приложений. В случае с последними аутентификационные данные правильнее всего хранить в HTTP-куках, доступ к которым имеет только серверная сторона. В этом ролике я продемонстрирую реализацию сохранения куки с JWT-токеном и дальнейшую аутентификацию при её помощи. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Репозиторий проекта: https://github.com/alex-kosarev/spring-security-jwt #java #jwt #springsecurity 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

На этой неделе добью таки JWT: сегодня вторая часть про токен-аутентификацию для веб-приложений
На этой неделе добью таки JWT: сегодня вторая часть про токен-аутентификацию для веб-приложений

JWT-аутентификация для нативных приложений - Spring Security JWT-аутентификация - это токен-аутентификация с использованием к
JWT-аутентификация для нативных приложений - Spring Security JWT-аутентификация - это токен-аутентификация с использованием ключей доступа сериализованных в формате JWT - JSON Web Token. В этом ролике я продемонстрирую реализацию получения и обновления ключей доступа, аутентификации при их помощи, а так же блокировку ключей. Не судите строго - было душно. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Репозиторий проекта: https://github.com/alex-kosarev/spring-security-jwt #java #jwt #springsecurity 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

С третьей попытки я таки выстрадал этот ролик, так что ждите)
С третьей попытки я таки выстрадал этот ролик, так что ждите)

Принцип разделения интерфейса - SOLID деталях Четвёртый принцип SOLID - принцип разделения интерфейса (Interface Segregation
Принцип разделения интерфейса - SOLID деталях Четвёртый принцип SOLID - принцип разделения интерфейса (Interface Segregation Principle, ISP), и гласит он следующим образом: "Программные сущности не должны зависеть от методов, которые они не используют". Однако с течением времени данный принцип стал применим не только к интерфейсам, но и к другим аспектам разработки программного обеспечения, что отражено в книге Роберта Мартина "Читая Архитектура": "Этот принцип призывает разработчиков программного обеспечения избегать зависимости от всего, что не используется". Предлагаю сначала разобраться с интерфейсами, а затем рассмотреть несколько примеров более широкого применения принципа. 📖 Читать на сайте 📖 Читать в VK 📖 Читать на Telegraph #java #solid #isp 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

Тестирование и валидация REST-сервисов - Spring и Swagger При разработке ПО хорошей практикой является описание некоторого ко
Тестирование и валидация REST-сервисов - Spring и Swagger При разработке ПО хорошей практикой является описание некоторого контракта, на который будут опираться все компоненты системы при взаимодействии друг с другом. Для SOAP у вас есть WSDL, а вот для REST-сервисов такого однозначного способа описания контрактов изначально нет. Какое-то время я для этого использовал связку из Spring RestDocs и Spring Cloud Contract, но со временем и возросшей популярностью Swagger переключился на описание REST-сервисов в формате OpenAPI. В этом ролике я постараюсь наглядно продемонстрировать способ валидации REST-сервисов на Spring при помощи Swagger во время выполнения интеграционных тестов. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Репозиторий проекта: https://github.com/alex-kosarev/sandbox-spring-openapi #java #spring #swagger #openapi #rest 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

А у меня сегодня для вас будет ролик про валидацию REST-сервисов на Spring при помощи Swagger/OpenAPI
А у меня сегодня для вас будет ролик про валидацию REST-сервисов на Spring при помощи Swagger/OpenAPI

Keycloak и Spring Security Keycloak - популярный SSO-сервис (Single Sign On), предоставляющий единую точку входа для всех ваш
Keycloak и Spring Security Keycloak - популярный SSO-сервис (Single Sign On), предоставляющий единую точку входа для всех ваших приложений, реализующий протоколы OAuth и OIDC. Keycloak может быть использован в связке со Spring Security с минимальным количеством дополнительного кода. В этом ролике я продемонстрирую настройку ресурс-сервера и логина Spring Security OAuth2 с использованием Keycloak. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Репозиторий проекта: https://github.com/alex-kosarev/spring-security-keycloak #java #spring #springsecurity #keycloak #oauth #oidc 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

На прошлой неделе не было времени на написание новых материалов, а сегодня я вас порадую роликом про Spring Security, OAuth2
На прошлой неделе не было времени на написание новых материалов, а сегодня я вас порадую роликом про Spring Security, OAuth2 и Keycloak! #java #springsecurity #keycloak #oauth

Поиск сервисов и распределённые конфигурации - Spring Cloud и Consul При разработке проектов с микросервисной архитектурой ва
Поиск сервисов и распределённые конфигурации - Spring Cloud и Consul При разработке проектов с микросервисной архитектурой важно обеспечить взаимодействие между сервисами. Чтобы не помнить, на каком хосте и на каком порте запущен тот или иной сервис, можно воспользоваться поиском сервисов, что легко реализуется при помощи Spring Cloud и Consul. Так же можно вынести параметры приложения из файлов свойств в K/V-хранилище Consul! На самом деле ролик получился немножечко сумбурным, я несколько раз умудрился затупить, но всё же смог записать его. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзен ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube 🌐 Репозиторий проекта #java #consul #springcloud #servicediscovery 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

Как там ваша пятница? А я вас сегодня порадую роликом про Spring Cloud и GachiHaschiCorp Consul
Как там ваша пятница? А я вас сегодня порадую роликом про Spring Cloud и GachiHaschiCorp Consul

Фильтры безопасности - Spring Security в деталях Основными компонентами Spring Security являются фильтры, из которых состоит
Фильтры безопасности - Spring Security в деталях Основными компонентами Spring Security являются фильтры, из которых состоит цепочка фильтров безопасности, обрабатывающая HTTP-запросы. При помощи фильтров можно запускать процесс аутентификации, авторизировать пользователей, блокировать нежелательные запросы, в общем, обеспечивать безопасность приложения. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзен ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube #java #springsecurity 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

Сегодня расскажу о создании и использовании собственных фильтров безопасности, а так же о нюансах регистрации фильтров аутент
Сегодня расскажу о создании и использовании собственных фильтров безопасности, а так же о нюансах регистрации фильтров аутентификации в цепочке фильтров #java #springsecurity

Testcontainers и Spring Boot 3.1 Ещё одним нововведением в Spring Boot 3.1, связанным с использованием контейнеров, стала инт
Testcontainers и Spring Boot 3.1 Ещё одним нововведением в Spring Boot 3.1, связанным с использованием контейнеров, стала интеграция с Testcontainers - фреймворком для работы с контейнерами при тестировании. Интеграция позволяет минимизировать количество кода, требуемого для описания контейнеров и подключения к сервисам, запущенным в них, а так же использовать Testcontainers для ручного тестирования. ▶️ Смотреть в VK ▶️ Смотреть в Boosty ▶️ Смотреть в Дзене ▶️ Смотреть в Rutube ▶️ Смотреть в YouTube #java #docker #springboot #testcontainers 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

Docker Compose и Spring Boot 3.1 Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестиро
Docker Compose и Spring Boot 3.1 Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д. И чтобы не разворачивать это всё вручную, можно использовать контейнеры, а разработчики Spring Boot предлагают интеграцию Spring Boot и Docker Compose, благодаря которой использование контейнеров требует минимум кода. ▶️ Смотреть в VK ▶️ Смотреть в Дзене ▶️ Смотреть в Boosty ▶️ Смотреть на Rutube ▶️ Смотреть на YouTube #java #docker #springboot #dockercompose 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff

Docker Compose и Testcontainers в Spring Boot 3.1 Одними из наиболее значимых нововведений в недавнем релизе Spring Boot 3.1 на мой взгляд являются поддержка Docker Compose и Testcontainers, а так же новая концепция подключений к сервисам, которая позволяет с минимальным количеством кода подключаться к сервисам, развёрнутым в контейнерах. Пока что в виде статьи, ролик будет позже. 📖 Читать на сайте 📖 Читать в VK 📖 Читать в Telegraph 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff #java #springboot #springframework #docker #dockercompose #testcontainers

Точки входа аутентификации - Spring Security Для того чтобы Spring Security инициировал процесс аутентификации пользователя используются специальные компоненты - точки входа, которые реализуют интерфейс AuthenticationEntryPoint. Точка входа может инициировать процесс аутентификации в зависимости от выбранного способа аутентификации. Так, если в приложении используется Basic-аутентификация, пользователю будет отправлен HTTP-ответ со статусом 401 Unauthorized и заголовком WWW-Authenticate: Authorize Basic …​, о чём я уже рассказывал в статье о Basic-аутентификации. 📖 Читать на сайте 📖 Читать в VK 📖 Читать в Telegraph 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff #java #springsecurity

Доброго всем субботнего утречка! Я подумал и решил, что неплохо было бы рассказать, о том, что я могу рассказать, в каком формате и перечислить мои ресурсы в Интернете и что я на них буду публиковать. Темы и форматы За 12 лет разработки серверного ПО под Linux на платформе Java в связке с экосистемой Spring у меня накопилась уйма знаний и опыта применения связки Linux, Java и Spring, так что это основные темы моих материалов. Но кроме них я могу рассказать о Kotlin, Groovy, Jakarta EE, Apache Camel, Micronaut, Helidon, Quakrus и о многом другом. Было бы только время на это всё. Материалы я стараюсь выкладывать на всех площадках одновременно. Основные два формата, в которых я делюсь с вами знаниями - это статьи и ролики, ещё хочу попробовать онлайн-трансляции, но с ними пока всё сложнее. Ресурсы Раз мы находимся в Telegram, то начну с него. Здесь я буду публиковать посты о новых публикациях: роликах и статьях, а так же заметки о блоге. Флудить и делать посты не по теме здесь я не буду, так что можете не отключать уведомления, чтобы быть в курсе последних новостей. Telegram подходит для связи со мной, в том числе и быстрой. 🌐 Сайт На сайте я публикую исключительно ролики и статьи. Новости об обновлениях различных фреймворков здесь будут появляться только в виде статей и то, если я захочу подробно разобрать обновления с примерами кода. 🌐 VK В своём сообществе в VK я публикую вообще всё: ролики, статьи и публикации обо всём, что считаю важным. Если хочется быть в курсе всех событий моих ресурсов, то моё сообщество в VK - для вас. Также тут можно финансово поддержать мой скромный проект. 🌐 Дзен На своём канале в Дзене я публикую ролики и публикации обо всём, что считаю важным. Полных версий статей в Дзене не будет, так как редактор не позволяет красиво оформлять блоки кода. Если когда-нибудь это изменится, то статьи в Дзене тоже появятся. 🌐 Boosty В Boosty я публикую ролики и публикации о своих новых материалах. Здесь вы также можете поддержать проект. Кстати, один постоянный подписчик у меня уже есть, скромно, но уже что-то! 🌐 YouTube В YouTube я публикую только ролики. 🌐 Rutube В Rutube я тоже публикую только ролики. О поддержке проекта На написание статей и роликов уходит уйма времени: нужно освежить знания об освещаемой теме, проверить всё на практике, хотя бы на демонстрационном проекте, затем написать статью, вычитать, откорректировать и так далее. Короче говоря, это трудный и ресурсоёмкий процесс сравнимый с настоящей работой. И при этом всём я хочу сделать свои материалы доступными для всех, поэтому я не собираюсь продавать свои статьи и ролики. Может быть, я сделаю ранний доступ для спонсоров к своим материалам, но такая идея мне тоже не очень нравится. И чтобы иметь дополнительный стимул развивать проект дальше я вернул рекламные баннеры на свой сайт и надеюсь на вашу поддержку. Дальнейшее развитие проекта во многом зависит от вас. Ну, а поддержать проект вы можете в тех же VK, Boosty и Tinkoff.

Отладка контекста безопасности - Spring Security в деталях При работе с контекстом безопасности Spring Security иногда возник
Отладка контекста безопасности - Spring Security в деталях При работе с контекстом безопасности Spring Security иногда возникают ситуации, когда разрабатываемое приложение начинает себя вести не очевидно, отвечать ошибками с HTTP-статусом 403, но без каких-либо подробностей, в том числе и в логах. В рамках этой статьи предлагаю разобраться с тем, как можно добиться большей конкретики от Spring Security при возникновении подобных ситуаций. 📖 Читать на сайте 📖 Читать в VK 📖 Читать в Telegraph 🌐 Сайт 🌐 Паблик в VK 🌐 Канал в Telegram 💰 Стать доном 💵 Донаты в Boosty 💸 Донаты в Tinkoff #java #springsecurity