Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用keyclaok rest api为用户获取更多/可选数据?_Java_Single Sign On_Keycloak_Keycloak Services - Fatal编程技术网

Java 如何使用keyclaok rest api为用户获取更多/可选数据?

Java 如何使用keyclaok rest api为用户获取更多/可选数据?,java,single-sign-on,keycloak,keycloak-services,Java,Single Sign On,Keycloak,Keycloak Services,我们使用keydape进行SSO,特别是我们能够使用restapi/admin/realms/{realm}/users获取keydape领域中的基本用户详细信息,我们得到的响应是UserRepresentation,它似乎也提供了realmRoles和clientRoles,但默认情况下它们不是必需的/false 我们有一个新的需求来获取所有用户的角色,我看到有额外的API公开来获取这些角色:/auth/admin/realms/realm/users/user id/role mapping

我们使用keydape进行SSO,特别是我们能够使用restapi
/admin/realms/{realm}/users
获取keydape领域中的基本用户详细信息,我们得到的响应是UserRepresentation,它似乎也提供了realmRolesclientRoles,但默认情况下它们不是必需的/false

我们有一个新的需求来获取所有用户的角色,我看到有额外的API公开来获取这些角色:
/auth/admin/realms/realm/users/user id/role mappings/realm/
,但这意味着触发另一个请求,如果我们有2k个用户,则意味着还有2k个请求


我的问题是,UserRepresentation也有属性realmRolesclientRoles,但默认情况下似乎是可选的,如何在触发请求时启用这些属性
/admin/realms/{realm}/users
,并避免额外请求获取角色。

我担心在一个请求中获取所需数据是不可能的:只需查看获取所有用户的源代码,您就可以看到,
realmRoles
clientRoles
从未填充过


话虽如此,有一件事你可以做——写你自己的。事实上,在过去,我在使用groups资源时也遇到过类似的问题,最终我编写了自己的资源。在这种情况下,您将只需要使用一种方法编写自定义资源—使用角色获取所有用户。您只需复制粘贴当前KeyClope逻辑并添加额外位或扩展内置UsersResource。然而,,不是一个单一的项目-从长远来看,您将需要维护自己的代码,如果某些界面发生变化,升级到最新的KeyClope可能不会那么简单。

我担心在一个请求中获取您需要的数据是不可能的:只要查看获取所有用户的源代码,您就可以看到这一点
realmRoles
clientRoles
从不填充


话虽如此,有一件事你可以做——写你自己的。事实上,在过去,我在使用groups资源时也遇到过类似的问题,最终我编写了自己的资源。在这种情况下,您将只需要使用一种方法编写自定义资源—使用角色获取所有用户。您只需复制粘贴当前KeyClope逻辑并添加额外位或扩展内置UsersResource。然而,这并不是一个单一的项目-从长远来看,您需要维护自己的代码,如果某些界面发生变化,升级到最新的KeyClope可能不会那么简单。

您是否尝试过获取/admin/clients/{id}/rolesIt需要用户id,如果您想要2k个用户角色,它需要激发2k个请求,不可伸缩。您是否尝试过GET/admin/clients/{id}/rolesIt需要用户id,如果您想要2k个用户角色,它需要激发2k个请求,而不是可伸缩的。