Ошибка аутентификации Keycloak и Spring Boot - PullRequest
0 голосов
/ 05 мая 2020

Я запускаю keycloak в контейнере docker и запускаю приложение для весенней загрузки, исходя из идеи. Когда я пытаюсь войти в форму keycloak, я получаю сообщение об ошибке

failed to turn code into token
status from server: 401
{"error":"unauthorized_client","error_description":"Client secret not provided in request"}

, за исключением: org.keycloak.adapters.springsecurity.KeycloakAuthenticationException: Invalid authorization header, see WWW-Authenticate header for details

Внутри панели администратора keycloak я настроил своих пользователей и роли.

Файл свойств:

keycloak.realm=myrealm
keycloak.resource=myclient
keycloak.auth-server-url=http://localhost:8081/auth
keycloak.ssl-required=external
keycloak.public-client=true
keycloak.principal-attribute=preferred_username
keycloak.credentials.secret=eba15252-we3r-423e-8df0-87f1da4a7c04
keycloak.use-resource-role-mappings=true

Не могли бы вы помочь кому-нибудь, как это исправить?

** ОБНОВЛЕНИЕ: если я запускаю keycloak без docker, он работает.

1 Ответ

0 голосов
/ 05 мая 2020

Понятно, в почтовом запросе вы не вводите client_secret. Вы можете получить это из раздела «Клиенты» в админке Keycloak. Вот так должен выглядеть ваш запрос.

curl --location --request POST '{{KEYCLOAK_BASE_URL}}/auth/realms/{{KEYCLOAK_REALM}}/protocol/openid-connect/token' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'client_id=web-app-client' \
--data-urlencode 'username=user@gmail.com' \
--data-urlencode 'password=123123' \
--data-urlencode 'client_secret=ea05b21c-fcb4-412d-acb7-c888ba7f996d' \
--data-urlencode 'scope=openid phone address'
...