Я успешно реализовал код, который позволяет мне извлекать токен JWT из моего приложения через OAuth и UserDetailsService.
Atm Я пытаюсь реализовать тесты, чтобы подтвердить это, но я продолжаю получать 400 неверных запросов
@Test
public void is_status_up() throws InterruptedException, JSONException {
// Given
final String TOKEN_URL = "http://localhost:8080/oauth/token";
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("username","username");
params.add("credential","credentials");
params.add("grant_type","password");
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON_UTF8));
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<String> entity = new HttpEntity<>("parameters" , headers);
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(params, headers);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor("client-id","client-secret"));
//When
String result = restTemplate.postForObject(TOKEN_URL, request, String.class);
//Then
assertThat(result).isNotNull();
}
При попытке попытаться получить токен с сервера Spring Security Authorization Server /Конечная точка oauth / token Меня встретили с ошибочным запросом 400.
В почтальоне, который успешно извлекает токены. Мне настроен запрос
Заголовок Авторизация: Базовый тип контента: application / x-www-form-urlencoded
тело (выбран x-www-form-urlencoded) имя пользователя: пароль: тип_стали: "пароль"