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

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

Рассказываю о разработке ПО на платформе Java
Уголок сельского джависта
37
subscribers
goals
54.76 of $ 112 310 money raised
🏡 На большой семейный дом
16.12 of $ 112 310 money raised
🚘 На большую семейную машину

About the creator

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

Client, Resource Server, Login - Spring Security OAuth 2.0

В одном из предыдущих роликов я рассказал теорию об OAuth 2.0 и OIDC, а на этот раз предлагаю перейти к практике. Spring Security реализует практически полноценную поддержку протокола авторизации OAuth 2.0 и его расширения аутентификации OpenID Connect (OIDC), и с минимальными изменениями в своём проекте вы можете внедрить поддержку этих протоколов. В этом ролике я рассматриваю возможность применения Spring Security OAuth 2.0 для реализации сервера ресурсов, клиента и логина в веб-приложениях на основе Spring WebMVC и Spring Webflux. Так же в качестве сервера авторизации снова будет рассмотрен Keycloak, а так же процесс его настройки.
Show more

О планах

❗️Всех с прошедшими праздниками!
Хочу поделиться творческими планами на ближайшее время.
Ещё в конце прошлого года у меня появилось желание запланировать написание цикла материалов о разработке проектов с экосистемой Spring, но в отличие от серии "Spring по верхам", с которой я начинал своё творчество, есть желание копнуть и вглубь, и вширь. Сейчас я как раз занимаюсь проработкой кода, который будет демонстрироваться в роликах и статьях, коих в цикле будет не меньше 20, а охват тем будет начинаться с создания проекта и заканчиваться развёртыванием проекта в Kubernetes! И сейчас код написан уже для первых 12 роликов.
Show more

Actuator, Micrometer, Victoria Metrics, Grafana - Мониторинг Spring Boot

Мониторинг состояния сервисов является важной составляющей процесса сопровождения программного обеспечения. В этом ролике я демонстрирую, как при помощи Spring Boot Actuator и Micrometer можно экспортировать метрики в VictoriaMetrics, а затем визуализировать их в Grafana. Кроме этого я рассматриваю несколько простых примеров написания собственных метрик.
Show more

Основы OAuth 2.0 и OpenID Connect

При необходимости передачи данных пользователя сторонним приложениям надо как-то решать вопрос доступа - как предоставлять доступ к данным, не передавая стороннему приложения учётные данные пользователя - логин, пароль и т.д. И основным способом решения этого вопроса является фреймворк авторизации OAuth, который добавляет в эту схему сервер авторизации, а так же описывает сценарии взаимодействия между участниками для безопасного предоставления доступа сторонним приложениям к пользовательским данным.
Show more

Мой год видеоблоггинга - ожидания, результаты, планы #влог #блог

Всем привет! Сегодня 8 декабря, прошёл ровно год с момента публикации первого ролика из серии "Spring по верхам", с которого я начал целенаправленно и систематически записывать и публиковать ролики. И по этому поводу я решил подвести итоги творческого года, среди которых более 100 000 просмотров, почти 4 000 подписчиков и очень тёплый приём публикой. Всем зрителям большое спасибо за внимание! #влог #блог
Show more

Гексагональная архитектура и микросервисы

Проектирование и разработка архитектуры программного обеспечения является неотъемлемой и крайне важной составляющей процесса разработки. Гибкая и хорошо проработанная архитектура значительно упрощает процесс разработки как монолитных проектов, так и проектов с микросервисным подходом. А в идеальных условиях архитектура должна позволять получить из одной кодовой базы как модульный монолит, так и набор микросервисов.
Show more

Access Control List (ACL) - Spring Security в деталях

Основными подходами к реализации авторизации в информационных системах являются RBAC и ABAC, однако их возможностей не всегда достаточно для обеспечения гибкого управления доступом, особенно в крупных корпоративных системах. В этом случае хорошей альтернативой может стать авторизация на основе списка правил доступа (Access Control List; ACL). Spring Security предоставляет собственную реализацию ACL, работа с которой будет продемонстрирована в этом ролике.
Show more
avatar
Интересно, почему же их решили удалять?.. Из критики, нашёл лишь статью 12-го года - https://agoodcoder.blogspot.com/2012/04/alternative-to-spring-security-acl.html . Там следующие 4 пункта:
"Spring Security ACL может быть хорош, но его недостатки также очевидны:
1. Необходимо сохранять разрешения вместе с сохранением каждого бизнес-объекта
2. Необходима аннотация для каждого метода
3. Если вы решите изменить настройку прав доступа, вам придется проделать огромную работу по изменению производственных данных, а это проблематично и опасно.
4. Вероятно, у вас уже есть структура разрешений. Например, контракт создан пользователем UserA, поэтому только UserA может его изменить. Вы сохраните дублирующуюся информацию в ACL. Почему бы просто не использовать существующую структуру, которая у вас уже есть?"
avatar
Вячеслав Лапин, я лично вижу три причины:
1. Решение хоть и рабочее, но недостаточно гибкое, единственная реализация подразумевает использование реляционных СУБД в качестве источника данных.
2. Откровенно слабая документация - если попытаться всё сделать, как описано в ней, то не взлетит. Надо рыться в исходных кодах. Это сильно повышает порог вхождения, который и так достаточно высокий для ACL в целом.
3. Непопулярность. Обычно такие решения пилятся самостоятельно с интеграцией в существующую систему прав..
Критика меня порадовала)
1. Очень странная проблема) Нужно понимать, что ACL как правило реализуется в виде технической предметной области и существует самостоятельно, без реальной привязки к объектам предметной области. Можно при помощи АОП это всё автоматизировать.
2. Тоже странная проблема, аннотации, что с ACL, что без нужны.
3. Рабочий процесс, причём очевидный
4. А это демонстрирует отсутствие понимания автором ACL)

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

Представить себе информационную систему, в которой все пользователи имеют одинаковые неограниченные права практически невозможно - в абсолютном большинстве информационных систем пользователи обладают разными правами, в зависимости от выполняемых задач. Авторизация обеспечивает предоставление полномочий пользователям, а так же проверку их наличия у пользователя при необходимости. В этом ролике я постарался рассказать, что такое авторизация, какие основные способы её реализации существуют, а так же рассмотрел применение Spring Security для обеспечения авторизованного доступа к HTTP-эндпоинтам и методам.
Show more
avatar
Александр добрый вечер! Можете сориентировать как можно решить такую задачу. Есть например V1 и V2 версии методов. Методы разные и в той и в той версии. Для каждой версии есть свой публичный ключ для верификации и свои ошибки при некорректной авторизации. Как можно было вероятно разделить это например на разные SecurityFilterChain или такую задачу можно решить по другому?
avatar
Александр Бугримов, можно их развести по разным цепочкам фильтров безопасности при помощи HttpSecurity.securityMatcher() с разными приоритетами

Java нативно - GraalVM Native Image

Ещё с самого начала моей карьеры разработчика программного обеспечения на платформе Java меня волновал вопрос: "А можно ли компилировать Java-код в нативные исполняемые файлы?", и я был далеко не один такой. И инструменты для компиляции Java-кода в нативные исполняемые файлы и библиотеки существовали, например тот же GNU C compiler for Java (gcj), хоть и с некоторыми нюансами.
Но меня этот вопрос как-то не сильно волновал, так что дальше чтения теории я не ушёл, да и как-то забыл про это.
Show more

Spring Boot в контейнерах

Разработку и развёртывание современного серверного программного обеспечения сложно представить себе без использования инструментов контейнеризации, ну, а Docker и вовсе, наверняка, на слуху у подавляющего большинства разработчиков.
Упаковка в контейнеры проектов на платформе Java в целом задача не сложная, но имеет свои нюансы. В этой статье я рассмотрю следующие сценарии упаковки приложения на основе Spring Boot в OCI-образ:
Show more

Subscription levels

🤝 Благодарный подписчик

$ 2,25 per month
Для всех тех, кому не жалко 200 рублей в месяц в знак благодарности за мои статьи и ролики. Никаких преференций это пока не даёт, просто поддержка автора.

👍 Очень благодарный подписчик

$ 5,7 per month
Для всех тех, кому не жалко 500 рублей в месяц в знак благодарности за мои статьи и ролики. Никаких преференций это пока не даёт, просто поддержка автора.

🫶 Ну очень благодарный подписчик

$ 11,3 per month
Для всех тех, кому не жалко 1000 рублей в месяц в знак благодарности за мои статьи и ролики. Никаких преференций это пока не даёт, просто поддержка автора.
Go up