Маркер доступа Keycloak - JWT
.Это JSON
, и каждое поле в этом JSON
называется claim
.По умолчанию вход в систему username
возвращается в claim
с именем “preferred_username”
в access token
.Сервер ресурсов Spring Security OAuth2 ожидает имя пользователя в claim
с именем “user_name”
.Итак, вам нужно создать маппер для сопоставления вошедшего в систему username
с новым claim
с именем user_name
.
Чтобы предоставить доступ клиенту (микро-сервис), соответствующему role
необходимобыть назначенным / сопоставленным на user
.
В приложении весенней загрузки необходимо настроить подключение к серверу keycloak, указав auth
url, token
url, scope
, grant-type
, client-id
и client-secret
.
После того, как ваше приложение сможет анализировать токен JWT, вам необходимо создать несколько JwtAccessTokenCustomizer
.Этот класс должен расширять DefaultAccessTokenConverter
и реализовывать JwtAccessTokenConverterConfigurer
классы.Основная логика заключается в методе public OAuth2Authentication extractAuthentication(Map<String, ?> tokenMap)
.
Затем необходимо настроить OAuth2 Resource Server
для предоставления доступа к другим микро-сервисам.Для этого вы определяете здесь - Oauth2RestTemplate
Bean.
И, наконец, защитите свой REST API с помощью стандартной конфигурации Component
.
Итак, вы можете видеть, что этобольшая работа, которую нельзя описать с помощью кода, покажите часть своей работы, разделите ее на куски и задайте интересующие вас вопросы.