我升级到Spring Framework 2后,RestTemplate交换得到错误的响应

时间:2018-09-13 23:47:05

标签: java spring-boot spring-security resttemplate

我有一个令牌宁静服务,当我使用邮递员将其击中(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();

它以前工作正常,但是在我将spring升级到2.0后不确定是否有问题。

请帮助。预先感谢。

更新:

如果在交换函数中将Map.class更改为String.class,我将获得正确的Json。

0 个答案:

没有答案