Я начинаю с Spring OAuth2. Пока все хорошо, я получил приложение с настройкой. Но у меня проблема, мой клиент не поддерживает HTTP Basic Authorization.Spring OAuth2 отключить HTTP Basic Auth для TokenEndpoint
Есть ли способ отключить HTTP Basic Auth для конечной точки/oauth/token? Я хотел бы отправить client_id и client_secret в тело JSON или в заголовки запроса.
примеры локон Я хотел бы работать:
curl -X POST -H "Content-Type: application/json" -d '{
"username": "user",
"password": "pass",
"grant_type": "password",
"client_id": "test-client-id",
"client_secret": "test-client-secret"
}' "http://localhost:9999/api/oauth/token"
ИЛИ
curl -X POST -H "Content-Type: application/json" -H "X-Client-ID: test-client-id" -H "X-Client-Secret: test-client-secret" -d '{
"username": "user",
"password": "pass",
"grant_type": "password"
}' "http://localhost:9999/api/oauth/token"
Я думаю, что проблема использования JSON в качестве входного формата заключается в том, что если вы его измените, ваш сервер больше не будет совместим с OAuth2, поскольку стандарт RFC говорит, что запрос ДОЛЖЕН быть отправлен в формате url-encoded: https: //tools.ietf.org/html/rfc6749#appendix-B – Mrdev
Я не думаю, что RFC указывает, что в запросе должна быть только одна опция Content-Type. Предоставленное решение позволяет использовать приложения/json и url-кодированные как бок о бок. Конечно, должна быть опция включения/отключения JSON для каждого клиента. –
Я не читал с большим вниманием, но части, которые я читал, казались довольно жесткими в запросах «x-www-form-urlencoded». См. Https://tools.ietf.org/html/rfc6749#section-4.3.2. – demaniak