Запрос токена OAuth2 работал с почтальоном, но не с Resttemplate - PullRequest
0 голосов
/ 18 марта 2020

У меня есть этот фрагмент кода, который вызывает некоторый сервер авторизации для получения токена.

    TokenRequest tokenRequest = new TokenRequest("authorization_code", code, clientId, clientSecret, redirectionUrl);
    doExecute(
            tokenUri,
            HttpMethod.POST,
            new HttpEntity(tokenRequest, HttpHeaderBuilder.builder().jsonContent().build()),
            new JsonRequestListener() {
                @Override
                public void onSuccess(JSONObject obj) throws JSONException {
                }

                @Override
                public void onError(JSONObject obj, StatusLine statusLine) {
                }

                @Override
                public void onFailure(Throwable throwable) {
                }
            });

В doExecute методе я выполняю этот вызов:

ResponseEntity<String> response = restTemplate.exchange(uri, method, httpEntity, String.class);

Я создал перехватчик моего рестайта и проверил:

2020-03-18 15:53:28.127  INFO 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : ===========================request begin================================================
2020-03-18 15:53:28.127 DEBUG 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : URI         : https://api-sandbox.foodics.com/oauth/token
2020-03-18 15:53:28.127 DEBUG 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : Method      : POST
2020-03-18 15:53:28.127 DEBUG 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : Headers     : {Accept=[text/plain, text/plain, application/xml, text/xml, application/json, application/*+xml, application/*+json, */*, */*], Content-Type=[application/json], Content-Length=[1117]}
2020-03-18 15:53:28.128 DEBUG 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : Request body: {"grant_type":"authorization_code","code":"def50200f5f4d344ed8ed386a3fefd99b4977ad9fed4fcfb19a4f1923267d464bbf75a589d2c539f3880bbe051e8c40f3763d5d2505f83ad4698f5b95213117eb184909c5591496dd83e9c91bc218fde5d173e2ad09f8cacf0d408173c22f5b1704ae7127296d3a8feba50e3e416dbd928e58a071720b50d7ccf6bee7d9bb3133bb9d5284ef7027f28cd69e0b4144f151af212a7f87c3b80890ce3488a0fc9c2118f9fae4e95a16ca96007b3599ea1e8765f9db69ea524aa01b17eec3555084e139e2e914bb7922bd83057a62b4784cf1e3688ce3741ba67b47168668e8be4f701a277b24b79e36ab89f6d7bcb3a1cc1fe022437db688afbb038175cad1183c35bafc5999e43641fcebd7bcd47dfb8396300f83aa17484177acebbc3fed84d7a46f8b7895ab26d8c5c46728b92eb8ed1d3a97fdeb05915ee129d4ae0e48c4479c4ee321c103c316669d4b54213cfb12c3f97f481ce9345ba9dbef16f8c25475cd1c862547ab8ccca40c89a4ee7e6891804625941b0484fb59781d3633f59b71582c2cb7c7c22e756d728ea573547183a0cc5ee11720076f1b879fd0204ec599234b5ac412d10e4003f481e7fff9ab54374f214b9cfc","client_id":"90166b44-f4de-491a-XXX","client_secret":"f4vTOFjtxgl7Nn717JfZe15IXVsXXX","redirect_uri":"https://some_url/api/oauth"}
2020-03-18 15:53:28.128  INFO 29756 --- [o-8080-exec-174] n.j.a.c.v2.MyController     : ==========================request end================================================

Когда я принимаю одно и то же тело запроса на почтальоне, оно работает нормально. Но с моим приложением я получаю 403

enter image description here

1 Ответ

0 голосов
/ 19 марта 2020

Я нашел ответ здесь .

Так что я просто добавил заголовок User-agent (вместо стандартного java).

...