У меня есть служба токена restful, которая генерирует следующую информацию, когда я использую почтальон для ее получения (GET).
{
"authorities": [
{
"id": 1,
"authority": "admin"
},
{
"id": 2,
"authority": "ROLE_USER"
}
],
"details": {
"remoteAddress": "0:0:0:0:0:0:0:1",
"sessionId": null,
"tokenValue": "7760e769-9b1e-4669-8b6d-85e51809934d",
"tokenType": "bearer",
"decodedDetails": null
},
"authenticated": true,
"userAuthentication": {
"authorities": [
{
"id": 1,
"authority": "admin"
},
{
"id": 2,
"authority": "ROLE_USER"
}
],
"details": {
"remoteAddress": "0:0:0:0:0:0:0:1",
"sessionId": null
},
"authenticated": true,
"principal": {
"id": 1,
"username": "sysadmin",
"password": "$2a$10$xm6.EOh8GrsnwRy91d2cueZPwvPojuExnYEGy1auFyzqYTtdlHvUe",
"accountNonExpired": true,
"accountNonLocked": true,
"credentialsNonExpired": true,
"enabled": true,
"authorities": [
{
"id": 1,
"authority": "admin"
},
{
"id": 2,
"authority": "ROLE_USER"
}
],
"userId": "1"
},
"credentials": null,
"name": "sysadmin"
},
"credentials": "",
"oauth2Request": {
"clientId": "movez",
"scope": [
"all"
],
"requestParameters": {
"grant_type": "refresh_token"
},
"resourceIds": [],
"authorities": [],
"approved": true,
"refresh": false,
"redirectUri": null,
"responseTypes": [],
"extensions": {},
"grantType": "refresh_token",
"refreshTokenRequest": null
},
"principal": {
"id": 1,
"username": "sysadmin",
"password": "$2a$10$xm6.EOh8GrsnwRy91d2cueZPwvPojuExnYEGy1auFyzqYTtdlHvUe",
"accountNonExpired": true,
"accountNonLocked": true,
"credentialsNonExpired": true,
"enabled": true,
"authorities": [
{
"id": 1,
"authority": "admin"
},
{
"id": 2,
"authority": "ROLE_USER"
}
],
"userId": "1"
},
"clientOnly": false,
"name": "sysadmin"
}
Однако, когда я использую обмен RestTemplate для вызова API, я получаю следующее:
Проблема здесь
Есть два слоя "авторитетов", которые не соответствуют структуре в Json.
Если мы углубимся, у нас есть только полномочия "ROLE_USER", а "admin" не найден.
Мой код
Map auth = restTemplate.exchange(tokenVerifyUri, HttpMethod.GET, entity, Map.class).getBody();
Ранее он работал нормально, но у меня возникли проблемы после обновления пружины до 2.0 (не уверен, что это связано).
Пожалуйста, помогите. Заранее спасибо.
UPDATE:
Если я заменю Map.class на String.class в функции exchange, я получу правильный Json.