我使用 Spring Boot 和 Rest 模板,我想获取用户连接的信息

问题描述 投票:0回答:1

我使用 Spring Boot 和 Rest 模板,我想获取用户连接的信息,但只要我连接到管理员帐户和作者帐户,我就会得到信息,不,这是我的代码

public UserDto getInfo() 抛出 APIErrorException {

    UserInfoResponse userInfoResponse = null;

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
    map.add("token", accessToken);
    map.add(CLIENT_ID, admin_Client);
    map.add(CLIENT_SECRET, secret_key);
    HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);

    try {
        userInfoResponse = restTemplate.postForEntity(userInfoUrl, request, UserInfoResponse.class).getBody();

    } catch (Exception e) {
        throw new APIErrorException(ErrorCode.E444);
    }
    UserKeycloak userKeycloak = userMapperService.fromUserInfoResponse(userInfoResponse);
    return userMapperService.convertKeycloakToDto(userKeycloak);
}
java spring-boot keycloak spring-resttemplate
1个回答
0
投票

Spring Security OAuth2 客户端默认应使用

userinfo
调用
org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService
端点,并将用户属性添加到
OAuth2UserAuthority

© www.soinside.com 2019 - 2024. All rights reserved.