Я настраиваю веб-сервер, который использует поток кода авторизации Twitch для входа в систему пользователя с помощью потока кода авторизации.
Шаг авторизации уже работает, но jaxson выдает исключение во время шага, когда он извлекает токен из Twitch. Пролистывая код безопасности oauth2, похоже, что jaxson анализирует область видимости как строку, но Twitch возвращает область видимости как массив строк, вызывающих выброс jaxson. Я думаю, может быть, я мог бы переопределить анализатор jaxson, но я не уверен, как это сделать.
Вот как выглядит возврат токена из Twitch:
{
"access_token": <access-token>,
"refresh_token": <refresh-token>,
"expires_in": 3600,
"scope": ["viewing_activity_read"],
"token_type": "bearer"
}
Область, являющаяся массивом, вызывает проблему на этом этапе в OAuth2AccessTokenResponseHttpMessageConverter
в this.jsonMessageConverter.read
:
@Override
protected OAuth2AccessTokenResponse readInternal(Class<? extends OAuth2AccessTokenResponse> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {
try {
@SuppressWarnings("unchecked")
Map<String, String> tokenResponseParameters = (Map<String, String>) this.jsonMessageConverter.read(
PARAMETERIZED_RESPONSE_TYPE.getType(), null, inputMessage);
return this.tokenResponseConverter.convert(tokenResponseParameters);
} catch (Exception ex) {
throw new HttpMessageNotReadableException("An error occurred reading the OAuth 2.0 Access Token Response: " +
ex.getMessage(), ex, inputMessage);
}
}
Спасибо!