Я пытаюсь использовать spirng-oauth2-client для подключения моего проекта к стороннему серверу аутентификации (следуя этой инструкции ), и прямо сейчас, когда я запускаю приложение, после шага авторизации я я перенаправляю обратно для моего приложения, и отображается страница с этой ошибкой:
[invalid_token_response] An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response: 406 Not Acceptable: [Media is not supported]
В комментариях к ответу в другом сообщении переполнения стека кто-то предположил, что это происходит, потому что «Spring делает POST для кода аутентификации с параметрами FORM, тогда как mercadolibre не ожидает тела, только параметры запроса».
У меня есть эта конфигурация прямо сейчас:
application.properties
spring.security.oauth2.client.registration.mercadolivre.provider=mercadolivre
spring.security.oauth2.client.registration.mercadolivre.client-id=...
spring.security.oauth2.client.registration.mercadolivre.client-secret=...
spring.security.oauth2.client.registration.mercadolivre.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.mercadolivre.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}
spring.security.oauth2.client.provider.mercadolivre.authorization-uri=https://auth.mercadolivre.com.br/authorization
spring.security.oauth2.client.provider.mercadolivre.token-uri=https://api.mercadolibre.com/oauth/token
безопасность. java
@Configuration
public class Security extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login()
.defaultSuccessUrl("/");
}
}
Кто-нибудь знает, как изменить поведение Spring в соответствии с требуемым для службы? Я имею в виду сделать POST для кода аутентификации без тела, только параметры запроса?