Comments 8
А почему предпочитаете использовать log4j2 вместо стандартного logback ?
Apache Log4j2 - самый молодой из Logback, Log4j и Log4j2. Его цель - улучшить более старые реализации (Logback, Log4j), используя преимущества как одного так и второго и одновременно избегая и их проблем. Он также является самым быстрым и продвинутым из них. Однако не забывайте использовать последнюю версию этой библиотеки. Logback по-прежнему является хорошим вариантом, если производительность не является вашим главным приоритетом.
А почему Keycloak не подошел?
Keycloak - это готовое решение SSO сервера со своей философией и ограничениями. Мне необходимо было решение, в котором я бы с лёгкостью мог реализовывать разного рода функциональности, о которых я расскажу в следующих статьях. Я давно работаю с проектами Spring Security и привык к ним. В добавок, было интересно посмотреть на новенький Spring Authorization Server, который пришёл на замену устаревшей реализации OAuth2 Authorization Server в Spring Security OAuth.
Вот вопрос который меня преследует - Как полноценно разлогиниться после авторизации по OAuth? Потому что /logout на Spring Authorization Server лишь разлогинивает клиента а не пользователя.
Не ясно до конца, где находится страница логина, на клиенте или спринг ее отдает? Кто ответственен за обновление jwt? Фронтенд?
Тема с корсом не должна настраиваться, она разрешается относительными урлами и маршрутизацией на уровне инфраструктуры.
Как вижу, этот сервер и генерирует jwt и сам же их проверяет, что, по мне, не очень хорошо, если архитектура сервисная. Там генерация идет в keycloak, к примеру, а проверять токен может любой сервис, имеющий публичный ключ. К примеру api gateway.
Тема с двухфазной аутентификацией(сессия в куке + пара jwt очень интересна, имел дело с подобной схемой в сберовском iam proxy. Там также своя страница аутентификации, настройки маршрутизации. Любой запрос проходит через iam до сервисов доходит уже с jwt. В статье все роли обьединены в одном сервисе, как это грамотно растащить и натянуть на оркестратор контейнеров - отдельная задача.
Попробую себе утащить алгоритмы генерации и обновления jwt. Очень хорошая замена относительно тяжеловесному кейклоку.
Спасибо за статью!
Строим свой SSO сервер используя Spring Authorization Server