Keycloak интеграция со Spring boot

Данная статья является инструкцией для новичков, которые хотели бы использовать Keycloak в своих проектах на Spring в качестве безопасности.
О создании API
Данная статья является инструкцией для новичков, которые хотели бы использовать Keycloak в своих проектах на Spring в качестве безопасности.
В эпоху цифровизации обеспечение надежной аутентификации и авторизации пользователей становится основой для безопасного доступа к различным государственным сервисам. Единая система идентификации и аутентификации (ЕСИА) предоставляет инструменты для выполнения этих задач в России. В этой статье я поделюсь опытом интеграции с ЕСИА с использованием OpenID Connect 1.0, а также предоставлю пример реализации интеграции на Java с ЕСИА для получения персональных данных пользователя.
Современные киберугрозы становятся все более сложными и изощренными, поэтому для стабильной работы организация уже не может обойтись без новейших методов защиты. Долгое время считалось, что для обеспечения безопасности веб-приложений вполне достаточно использования WAF (Web Application Firewall). Однако стремительный рост числа API и увеличивающееся количество угроз заставили пересмотреть этот подход. Многие компании столкнулись с тем, что они зачастую не имеют полного представления, какие ресурсы используются и насколько они уязвимы, вследствие чего у них недостаточно контроля над своими API.
В ответ на эту проблему команда разработчиков Вебмониторэкс создала средство защиты ПроAPI Структура, которое позволяет инвентаризировать все API, узнать их состав и выявить уязвимости. Важным дополнением нашего решения стала новая функциональность, которая позволяет собирать статистику по роутам и использовать её для раннего обнаружения атак и оперативного реагирования на них. Сегодня я представлю это нововведение.
Чтобы глубже понять, как работает наша новая функция, давайте разберем ключевые термины. При работе с API используются понятия эндпоинт и роут. Первое – это само обращение клиента, запускающее конкретное действие приложения. Например, GET, PATCH, DELETE. Роут же представляет собой URL, то есть имя, по которому API запускает работу эндпоинтов. Примером может служить функция авторизации, соответствующая роуту example.com/login.php. При этом, важно помнить, что один роут может запускать несколько эндпоинтов.
Что может быть привлекательнее депозита в Сбербанке под 21%? Видимо только депозит в ВТБ под 24%. А еще можно рассмотреть облигации с доходностью до 40% и ежемесячной выплатой купонов. Посмотрим, что они предлагают и какие существуют риски.
В статье будем искать такие варианты при помощи скрипта поиска ликвидных облигаций, который выложен на GitHub.
Вообще покупки высокодоходных облигаций с низким рейтингом (ВДО) на фоне роста ключевой ставки Центрального банка Российской Федерации – задача не для слабонервных. Высокие процентные ставки означают повышенный риск дефолта, особенно для эмитентов ВДО.
Привет, Хабр! Меня зовут Екатерина Саяпина, я Product Owner платформы МТС Exolve. Сегодня мы поговорим об одной интересной и полезной фиче — автоматических SMS-оповещениях о снижении цены на товар из вишлиста.
Мы не будем использовать невероятные достижения искусственного интеллекта или блокчейна. Иногда самые простые и приземленные вещи могут принести гораздо больше профита и бизнесу, и клиентам. В этом кейсе мы будем фиксировать добавление товара в вишлист, сравнивать текущую цену с последней и отправлять СМС при ее снижении.
Всем привет, меня зовут Алексей Нихаенко и я дата инженер. Это мой первый пост на хабре и я хочу поведать вам свое более близкое знакомство с инструментом Postman.
О чем пойдет речь?
Люди практически перестали использовать SMS для общения, но с точки зрения бизнеса это по-прежнему важный инструмент — для оповещений, авторизации, информирования о статусе заказов и во множестве других ситуаций. Сегодня рассмотрим протокол SMPP и его связь с SMS, а затем настроим свой сервер и интегрируемся с SMS API, чтобы отправить сообщение.
В этой статье мы создадим полноценный мини-блог на FastAPI с нуля, используя современные технологии веб-разработки. Вы узнаете, как реализовать JWT-аутентификацию, работать с Markdown и создать привлекательный пользовательский интерфейс.
Мы рассмотрим асинхронную работу с SQLAlchemy 2, включая сложные запросы и связи ManyToMany, а также интеграцию фронтенда с использованием Jinja2.
Этот проект демонстрирует, как создать функциональный блог, подобный Telegraf, преодолевая его ограничения и расширяя возможности.
Получить доступ к Claude из России может показаться сложной задачей из-за региональных ограничений сервиса. В этой статье я подробно расскажу, как зарегистрироваться в веб-версии и API Claude, какие инструменты потребуются для обхода ограничений, и как безопасно пользоваться сервисом в дальнейшем. Руководство основано на личном опыте и включает актуальные на конец 2024 года способы регистрации, проверенные на практике.
Поискав на русскоязычных ресурсах я понял, что практический полезной информации там крайне мало, либо же она могла не учитывать изменения в работе сервиса. Простым пользователям приходиться собирать информации буквально по крупицам - с разных видео на ютюбе, форумах или поверхностных статьях.
Поэтому я решил создать актуальное руководство, основанное на своем личном опыте, знаниях и учитывая все подводные камни, которые могут встретить неопытного пользователя Claude.
Backend-разработка может быть довольно сложной из-за огромного количества инструментов, библиотек и пакетов, из которых приходится выбирать.
Однако правильные инструменты способны значительно облегчить работу разработчика.
Сегодня мы познакомимся с 10 инструментами, которые сделают backend-разработку проще.
Этот список вас удивит.
<h2>1. Encore — фреймворк для backend‑разработки на TypeScript и Go, предназначенный для создания надёжных и типобезопасных приложений.</h2>
Создание масштабируемых приложений с использованием облачных сервисов часто сопряжено с плохим опытом разработки. Разработчикам приходится управлять сложной инфраструктурой и выполнять рутинные задачи, что замедляет их работу.
Encore помогает решить эту проблему, предлагая полный набор инструментов, ускоряющий разработку приложений.
Это как если бы у вас была кухня, полностью укомплектованная ингредиентами и инструментами, и вы могли бы сразу приступить к готовке, не тратя время на сбор всего необходимого.
Encore предоставляет opensource-фреймворк для backend-разработки (на TypeScript и Go), который позволяет определять инфраструктуру в виде типобезопасных объектов прямо в вашем приложении, объединяя инфраструктуру с кодом приложения. Encore автоматически занимается предоставлением инфраструктуры и DevOps, анализируя код приложения.
Это позволяет быстро создавать готовые к продакшену backend’ы, используя такие инструменты, как микросервисы, Postgres и Pub/Sub, без излишней сложности и забот о DevOps. Дополнительно вы получаете:
Multi-Agent Orchestrator — гибкая и мощная платформа для управления несколькими AI-агентами и обработки сложных разговоров.
GitHub Repo - https://github.com/awslabs/multi-agent-orchestrator
На заре появления LLM пользователям приходилось просто копировать свой код в текстовое окно, чтобы ИИ могла его обработать. Естественно, такой подход быстро всех утомил, и разработчики начали искать свои способы загрузки данных в модель. У этого подхода была серьезная проблема — каждому приходилось изобретать велосипед заново.
Именно поэтому появился протокол MCP (Model Context Protocol) — универсальный способ дать искусственному интеллекту доступ к нужным данным, неважно где они хранятся — на компьютере пользователя или же в интернете.
При проектировании интеграций через Kafka или другие брокеры сообщений можно столкнуться с проблемой зависимых сообщений в разных очередях/топиках.
Давайте изучим эту проблему подробнее и проанализируем, как ее можно решить с помощью паттернов проектирования Dead Letter и Inbox.
Верите ли вы в настоящую любовь? И я сейчас не про то мимолетное увлечение, когда прям с первого взгляда «искра, буря, безумие», а про выстроенную годами усилий, литрами пота и крови любовь. Лично я – верю! И хоть на новой работе я больше не использую XWiki, но время от времени так и хочется провести с ней удивительные мгновения и поделиться новым опытом с дорогими читателями.
На этом лирическое отступление завершается и мы переходим к практической части.
В данной статье мы расширим функции популярной opensource замены Confluence (со слов разработчиков) и добавим в XWiki возможность совершить телефонный звонок пользователю прямо из браузера, по нажатию всего одной кнопки на боковой панели.
Поможет нам в этом простой и доступный инструмент для работы с IP телефонией – Exolve WebSDK. Именно с помощью данной JavaScript (TypeScript) библиотеки мы будем совершать звонки. Кстати, новые пользователи могут протестировать МТС Evolve бесплатно, в рамках тестового баланса, в том числе и Mobile SDK, пусть и с некоторыми ограничениями (подробнее см. в документации).
Приемы, которые мы используем при внедрении Exolve WebSDK в XWiki, также будут полезны при подключении других сторонних JS библиотек. Поэтому надеюсь, что статья будет интересна не только тем, кто интересуется IP-телефонией, но и фанатам XWiki.
Продолжаем рассказывать, как идет портирование КОМПАС-3D на Linux (начало здесь). Сегодня речь про API и с вами Владимир Кузнецов, инженер‑программист по прикладным интерфейсам КОМПАС-3D.
До начала разработки нативной Linux‑версии КОМПАС-3D у нас был API экспортных функций, API5 и API7 под Windows. Когда возникла необходимость поддерживать КОМПАС на нескольких операционных системах, было принято решение создать кроссплатформенный API, который бы работал как на Windows, так и в ОС Linux. Рабочее название такого API — KsAPI.
Каждый стартап рано или поздно сталкивается с необходимостью обработки платежей онлайн.
В эпоху SaaS, PaaS, IaaS и других «As a Service» инициатив (их число постоянно растет), многие полагаются на бизнес модель платных подписок, так как она обеспечивает возможность регулярно в автоматическом режиме собирать платежи с пользователей и дает лучшую прогнозируемость финансовых потоков.
На рынке сейчас много поставщиков продуктов для решения данной задачи, однако есть среди них один, чьи продукты обычно рассматривают в первую очередь. Я говорю о Stripe.
В этой статье я хочу предложить читателю технический взгляд на решение проблемы обработки онлайн подписок с помощью языка программирования Scala и фреймворка Akka в распределенном серверном приложении для Кубернетиса.
Kubernetes действительно поражает своими могучими возможностями к расширению. Вы наверняка уже знаете про operator-паттерн, а также фреймворки kubebuilder и operator-sdk с помощью которых можно его реализовать. Если вкратце, то они позволяют расширять ваш Kubernetes через определение кастом-ресурсов (CRDs) и написание дополнительного контроллера, который будет выполнять вашу бизнес-логику для реконсиляции и управления этими ресурсами. Этот подход широко изучен, а в интернете можно найти огромное количество информации о том, как написать такой оператор.
Однако это не единственный метод расширения Kubernetes API. Так, для более сложных кейсов, например реализации императивной логики, сабресурсов и формирования ответов на лету, можно рассмотреть механизм API aggregation layer, который поддерживается в Kubernetes. В рамках aggregation layer можно разработать свой собственный extension API server и бесшовно интегрировать его в общий Kubernetes API.
В этой статье мы разберем, что такое API aggregation layer, для решения каких задач его стоит использовать, когда его использовать не стоит и как мы использовали эту модель для реализации собственного extension API server в платформе Cozystack.
Здравствуйте, друзья! Меня зовут Константин, я python backend developer из компании «Окенит». Сегодня я хочу рассказать свое видение проблемы новичка при ознакомлении с принципами SOLID, описанными в книге «Стерильная Архитектура» Робина Мартерта.
За свой десятилетний опыт я часто был свидетелем ситуации, когда молодые разработчики, желая сделать свой проект как можно более открытым для расширения и редактирования, превращали его в груду нечитаемого и неподдерживаемого кода при попытке использовать у себя все рекомендации Матушки Роба. Отсюда вопрос: «Почему, при следовании советам более опытного разработчика, код стал только хуже?».
Ответ на этот вопрос пришел ко мне очень быстро. Из‑за описания и без того абстрактных вещей чересчур абстрактными словами и примерами, Робин Мартерта вместо упорядочивания знаний, наводит хаос в умы читателей. Во избежание этой ситуации я решил написать данную статью, где коротко расскажу о наборе принципов SOLID, для чего они нужны и, главное, как применять эти принципы в жизни. Начнем по порядку, с буквы «S». И так, что же она значит?
Привет, Хабр! Представим ситуацию: вы клиент. Разговор с менеджером завершен, он предложил вам что-то полезное — услугу, продукт или подписку — и, допустим, вы соглашаетесь: «Почему бы и нет, отличная идея». Менеджер записал ваше согласие и обещал напомнить вам через месяц. Звучит просто.
Но вот в реальности ни один менеджер не помнит про сотни обещаний клиентам. И здесь на помощь приходит автоматизация. В этой статье рассмотрим, как построить систему автоматического напоминания, которая избавит менеджеров от лишней работы и увеличит количество сделок, которые могли бы улетучиться.