Oauth2 with Azure - no suitable HttpMessageConverter found
Hello,
J'ai fait une requête avec curl qui est fonctionnelle très très bien !
Code:
1 2 3 4
|
curl --location --request GET 'https://login.microsoftonline.com/0124dee1-b390-4423-****-1b8b0e81f9d5/oauth2/v2.0/token' --header 'Content-Type: application/x-www-form-u
rlencoded' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'client_id=ed46fc76-****-4d05-b90b-211bfe2e84b8' --data-urlencode 'scope=https://graph.microso
ft.com/.default' --data-urlencode 'client_secret=*****.aV5RmT=Z6Lbnc1uGMsxDN=cE_' |
Mais avec restTemplate j'ai le message d'erreur :
Code:
1 2
|
Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.client.oauth2.model.OAuth2TokenResponse] and content type [text/html;charset=utf-8] |
Mon code est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
headers.add(HttpHeaders.ACCEPT_CHARSET, "UTF-8");
headers.add(HttpHeaders.ACCEPT, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
String url = securityOAuth2ClientAccessTokenURI;
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("grant_type", URLEncoder.encode(securityOAuth2ClientGrantType, "UTF-8"));
params.add("client_id", URLEncoder.encode(securityOAuth2ClientId, "UTF-8"));
params.add("scope", URLEncoder.encode(securityOAuth2ClientScope, "UTF-8"));
params.add("client_secret", URLEncoder.encode(securityOAuth2ClientSecret, "UTF-8"));
HttpEntity<MultiValueMap<String, String>> requestBody = new HttpEntity<>(params, headers);
ResponseEntity<OAuth2TokenResponse> oAuth2TokenResponse = restTemplate.exchange(url, HttpMethod.GET, requestBody, OAuth2TokenResponse.class); |
Qui peut me dire c'est quoi mon erreur ? :mur:
mon restTemplate est juste :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@Bean
RestTemplate restTemplate() {
final RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(getMappingJackson2HttpMessageConverter());
return restTemplate;
}
public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_FORM_URLENCODED));
return mappingJackson2HttpMessageConverter;
} |
Merci!