Обмен RestTemplate получает неправильный ответ после обновления до Spring Framework 2 - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть служба токена 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, я получаю следующее: enter image description here

Проблема здесь

  1. Есть два слоя "авторитетов", которые не соответствуют структуре в Json.

  2. Если мы углубимся, у нас есть только полномочия "ROLE_USER", а "admin" не найден.

Мой код

Map auth = restTemplate.exchange(tokenVerifyUri, HttpMethod.GET, entity, Map.class).getBody();

Ранее он работал нормально, но у меня возникли проблемы после обновления пружины до 2.0 (не уверен, что это связано).

Пожалуйста, помогите. Заранее спасибо.

UPDATE:

Если я заменю Map.class на String.class в функции exchange, я получу правильный Json.

...