【发布时间】:2022-04-12 23:01:29
【问题描述】:
我有一个 Keycloak 服务器正在运行。以及作为资源服务器的 Spring Boot 应用程序。我可以进行身份验证并获取令牌,并且 Spring Boot 应用程序将接受该令牌。但是当我想从校长那里获取用户名时,我会得到一个 UUID 而不是我的电子邮件或用户名。我还在我的 keycloak 中添加了一个映射器,将首选用户名映射到用户名。它正在工作。
JWT 信息
...
"scope": "openid profile email",
"email_verified": true,
"username": "test@test.com",
"DOB": "12345",
"name": "test test",
"preferred_username": "test@test.com",
"given_name": "test",
"family_name": "test",
"email": "test@test.com"
}
我的 Spring 应用属性:
spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: http://localhost:8080/auth/realms/test
【问题讨论】:
-
你是怎么拿到校长的?
-
@dreamcrash 我有一个简单的带有 get 方法的 Rest 控制器。 @GetMapping("/") @PreAuthorize("hasAnyRole('USER')") private Principal me(Principal principal){}
标签: java spring spring-boot oauth keycloak