![](/img/trans.png)
[英]Export users with credential in keycloak with Admin Console API
[英]set credential in keycloak
我有這樣的方法可以在 keycloak 的數據庫中更改用戶的名字。
public void changeUserFirstname(FirstNameChangeDto firstNameChangeDto) {
//todo
log.log(Level.INFO, "requested change of firstname for user " + firstNameChangeDto.getEmail());
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl(config.getKeycloak().getAuthServerUrl())
.grantType(OAuth2Constants.PASSWORD)
.realm("master")
.username(config.getKeycloak().getAdminLogin())
.password(config.getKeycloak().getAdminPass())
.clientId(config.getKeycloak().getAdminClientId())
.build();
log.info("Found {} realms", keycloak.realms().findAll().size());
UsersResource usersResource = keycloak.realm(config.getKeycloak().getRealm()).users();
Optional<UserRepresentation> userRepresentationOptional = usersResource.search(firstNameChangeDto.getEmail()).stream().findFirst();
if(userRepresentationOptional.isPresent()) {
UserResource userResource = usersResource.get(userRepresentationOptional.get().getId());
userResource.setCredentialUserLabel("username", firstNameChangeDto.getFirstName());
System.out.println("fsfs");
}else{
System.out.println("here");
}
keycloak.realm("ed24").clearUserCache();
System.out.println("");
問題是它會引發錯誤
2021-06-07 21:02:16.967 ERROR 1 --- [nio-9080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is javax.ws.rs.NotFoundException: HTTP 404 Not Found] with root cause
javax.ws.rs.NotFoundException: HTTP 404 Not Found
如何正確更改用戶的名字? 如何檢查名字的實際 ID? 我猜在這種情況下它是用戶名。 Keycloak 的文檔記錄很差,我在 Google 中搜索短語userResource.setCredentialUserLabel()
只給了我文檔和代碼本身。
我發現。 我必須得到UserResource
class
UserResource userResource = getUserResource(keycloak, firstNameChangeDto.getEmail());
然后只是在更新后
UserRepresentation userRepresentation = userResource.toRepresentation();
userRepresentation.setFirstName(firstNameChangeDto.getFirstName());
使用更新方法
userResource.update(userRepresentation);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.