英文:
Keycloak: Can not get attributes of a role
问题
我已经将属性设置给了一个角色。前往 角色->编辑角色->转到“属性”选项卡,然后添加一个键和一个值。
然后,使用以下代码尝试检索属性。我成功检索到了所有角色(role.getName() 有一个值),但属性为 null。我是不是忘记在 Keycloak 中做一些设置?
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("http://host.docker.internal:8080/auth")
.realm("test")
.username("admin")
.password("admin")
.clientId("testId")
.authorization(kp.getKeycloakSecurityContext().getTokenString())
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(20).build())
.build();
RealmResource realm = keycloak.realm("test");
realm.roles().list().forEach(role->System.out.println(role.getName() + " " +role.getAttributes()));
英文:
I have set an attribute to a role.Go to Roles->Edit a role->go to tab Attributes and then add a key and a value.
Then with the below code I try to retrieve the attribute. I manage to retrieve all roles (role.getName() has a value) but the attributes are null. Did I forget to set something to keycloak?
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("http://host.docker.internal:8080/auth")
.realm("test")
.username("admin")
.password("admin")
.clientId("testId")
.authorization(kp.getKeycloakSecurityContext().getTokenString())
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(20).build())
.build();
RealmResource realm = keycloak.realm("test");
realm.roles().list().forEach(role->System.out.println(role.getName() + " " +role.getAttributes()));
答案1
得分: 2
你需要使用 realm.roles().list(false)
来获取所有数据。
@param briefRepresentation 如果为false,则返回带有其属性的角色
英文:
You need to use realm.roles().list(false)
to get all data.
@param briefRepresentation if false, return roles with their attributes
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论