我在使用 Spring Boot 的 OAuth2 功能设置简单的微服务系统时遇到问题。
我想做的是搭建一个Spring Boot Authorization Server来处理注册、授权和用户数据管理。除此之外,我想设置一个资源服务器来处理应用程序的逻辑。
由于所有数据都与用户 ID 相关,因此资源服务器必须向授权服务器请求 ID。因此,我设置了以下用户信息端点:
@Controller
public class UserInfoEndpoint {
private UserManagementBean userManagementBean;
@Autowired
public UserInfoEndpoint(final UserManagementBean userManagementBean) {
this.userManagementBean = userManagementBean;
}
@GetMapping("/user/me")
@ResponseBody
public Principal user(final Principal principal) throws PRPException {
User user = userManagementBean.loadUser(principal.getName());
@SuppressWarnings("unused")
Principal retVal = new Principal() {
@Override
public String getName() {
return user.getId().toString();
}
public String getPrimaryEmail() {
return user.getPrimaryEmail();
}
};
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用 JWK 来签署令牌。我可以使用 Postman 访问此端点,在那里我得到以下结果:
{
"primaryEmail": …Run Code Online (Sandbox Code Playgroud)