Ошибка маркера неверного доступа при развертывании на сервере, но работает локально - PullRequest
0 голосов
/ 28 марта 2019

Я могу получить токен доступа oauth, и я могу использовать его, если я запускаю свое приложение Springboot ЛОКАЛЬНО. Однако, когда я загружаю его на сервер нашей компании, я все равно могу получить токен, но когда я пытаюсь его использовать, я получаю ошибку 401. Есть что-то еще, что нужно настроить?

Я ссылаюсь на этот урок (в частности, на примере [vanilla]): https://github.com/spring-projects/spring-security-oauth/tree/master/tests/annotation

Используя этот код,

URL url = new URL("https://www.myserver.com/project/oauth/token?grant_type=client_credentials");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("my-client-with-secret:secret".getBytes()));

Мне удалось получить токен доступа:

{"access_token":"xxxx-xxxxx-xxxxxx-xxxxxx","token_type":"bearer","expires_in":41805,"scope":"read write"}

Но когда я пытаюсь использовать это:

URL url = new URL("https://www.myserver.com/project/api/stuff");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.addRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + token);

Я получаю ошибку:

{"error":"invalid_token","error_description":"Invalid access token: xxxx-xxxxx-xxxxxx-xxxxxx"}

Я также посмотрел на этот вопрос: Oauth2: недопустимый токен доступа но мой работает локально.

Дополнительная информация: По какой-то причине сервер использует «OAuth2AuthenticationProcessingFilter» но локально он использует «BasicAuthenticationFilter»

Сервер:

/oauth/token?grant_type=client_credentials at position 5 of 11 in additional filter chain; firing Filter: 'OAuth2AuthenticationProcessingFilter'
Token not found in headers. Trying request parameters.
Token not found in request parameters.  Not an OAuth2 request.

Местное время:

/oauth/token?grant_type=client_credentials at position 5 of 11 in additional filter chain; firing Filter: 'BasicAuthenticationFilter'
Basic Authentication Authorization header found for user 'my-client-with-secret'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...