Spring Boot 4: настройка сервера авторизации и проверка токенов
Spring Authorization Server вошёл в Spring Security 7 и следует его циклу релизов. Он выдаёт клиентским приложениям токены доступа по OAuth 2.1 и поддерживает OpenID Connect 1.0 для идентификации пользователей.
В руководстве по настройке сервера показаны регистрация клиента через свойства приложения и проверка токенов в HTTP-клиенте IntelliJ. Authorization Code разбирается на примере входа пользователя с подтверждением разрешений. Client Credentials используется для обмена между приложениями без участия пользователя. Затем автор добавляет в JWT, токен с полями данных, список полномочий под именем
Пример хранит пользователей в памяти. Для промышленной эксплуатации автор рекомендует внешний сервис управления пользователями и входом, например Keycloak или Okta.
#spring #java
Spring Authorization Server вошёл в Spring Security 7 и следует его циклу релизов. Он выдаёт клиентским приложениям токены доступа по OAuth 2.1 и поддерживает OpenID Connect 1.0 для идентификации пользователей.
В руководстве по настройке сервера показаны регистрация клиента через свойства приложения и проверка токенов в HTTP-клиенте IntelliJ. Authorization Code разбирается на примере входа пользователя с подтверждением разрешений. Client Credentials используется для обмена между приложениями без участия пользователя. Затем автор добавляет в JWT, токен с полями данных, список полномочий под именем
aut.Пример хранит пользователей в памяти. Для промышленной эксплуатации автор рекомендует внешний сервис управления пользователями и входом, например Keycloak или Okta.
#spring #java
Маршрутизатор запросов к моделям на Spring AI TypeSafe
Spring Boot 4.1.1 и стартер Spring AI TypeSafe 0.1.0: в туториале запрос сначала получает оценку сложности, затем направляется к выбранной модели. Приветствие и задача по проектированию архитектуры могут требовать разных моделей.
В разборе сборки маршрутизатора с нуля четыре уровня моделей описаны в enum. Jev, модель для структурированных решений, получает запрос и выбирает уровень по этим описаниям. Вместе с выбором возвращаются оценка уверенности и вероятности для каждого уровня: по ним можно смотреть, как изменения описаний влияют на решение.
Для маршрутизатора достаточно стартера. Без свойства spring.ai.typesafe.api-key он не создаст бин TypeSafeClient. Проект пока находится в Spring AI Community и не входит в основной репозиторий Spring AI.
#spring #java
Spring Boot 4.1.1 и стартер Spring AI TypeSafe 0.1.0: в туториале запрос сначала получает оценку сложности, затем направляется к выбранной модели. Приветствие и задача по проектированию архитектуры могут требовать разных моделей.
В разборе сборки маршрутизатора с нуля четыре уровня моделей описаны в enum. Jev, модель для структурированных решений, получает запрос и выбирает уровень по этим описаниям. Вместе с выбором возвращаются оценка уверенности и вероятности для каждого уровня: по ним можно смотреть, как изменения описаний влияют на решение.
Для маршрутизатора достаточно стартера. Без свойства spring.ai.typesafe.api-key он не создаст бин TypeSafeClient. Проект пока находится в Spring AI Community и не входит в основной репозиторий Spring AI.
#spring #java
Регистрация плагинов по списку через BeanRegistrar в Spring Framework 7
Spring Framework 7 и Spring Boot 4 позволяют программно регистрировать бины через
Регистратор читает свойства
Автор отмечает, что для большинства случаев условной регистрации бинов, по его мнению, достаточно аннотаций семейства
#spring #java
Spring Framework 7 и Spring Boot 4 позволяют программно регистрировать бины через
BeanRegistrar. В руководстве по подключению плагинов разобран пример приложения, где набор плагинов задаётся списком в настройках.Регистратор читает свойства
app.plugins[0], app.plugins[1] и далее через Environment, пока не встретит отсутствующее значение. Затем сопоставляет имена плагинов с классами и регистрирует их через BeanRegistry. Подключение самого регистратора показано через @Import.Автор отмечает, что для большинства случаев условной регистрации бинов, по его мнению, достаточно аннотаций семейства
@ConditionalOn….#spring #java
Spring Framework 7: настройка повторов при сбоях
В Spring Framework 7 и Spring Boot 4 повторы доступны без отдельной зависимости spring-retry. В разборе настройки повторов показаны два способа: аннотация
При миграции
В примерах множитель задержки 2 увеличивает паузы до 1, 2, 4, 8 и 16 секунд, а jitter добавляет случайное отклонение. Для программного варианта показана сборка
#spring #java
В Spring Framework 7 и Spring Boot 4 повторы доступны без отдельной зависимости spring-retry. В разборе настройки повторов показаны два способа: аннотация
@Retryable на методе и программный вызов через RetryTemplate.При миграции
@EnableRetry заменяется на @EnableResilientMethods. Меняется и подсчёт вызовов: прежний maxAttempts = 6 включал первую попытку, а новый maxRetries = 5 задаёт только повторы. Общее число попыток остаётся тем же.В примерах множитель задержки 2 увеличивает паузы до 1, 2, 4, 8 и 16 секунд, а jitter добавляет случайное отклонение. Для программного варианта показана сборка
RetryPolicy и выполнение вызова через RetryTemplate.execute(). Повторы не заменяют поиск причины сбоя.#spring #java
😁2