如何使用 java keycloak-admin-client 列出客户端的所有范围权限

问题描述 投票:0回答:1

我正在使用 keycloak 23.0.6、spring-boot 和 keycloak-admin-client maven 依赖项。

keycloak.realm("realm-name").clients().get("client-id").authorization().permissions().scope()
只有3个功能:
create
findById
findByName
,但没有列表功能。 keycloak 的 REST 端点不是限制因素,您可以在那里列出所有范围权限:
GET /admin/realms/<realm>/clients/<client-id>/authz/resource-server/permission/scope
,所以 keycloak-admin-client 库中似乎缺少它。 有没有我在这里遗漏的方法,或者我是否手动实现 HTTP 请求并解析结果?

我也尝试过使用keycloak-authz-client,也没有找到列表功能。

java spring-boot keycloak keycloak-admin-client
1个回答
0
投票

我明白了:

fun listAllScopedPermissions(): List<ScopePermissionRepresentation> {
    realm().clients().findByClientId(keycloakProperties.client.id).first().id.let { clientId ->
        val uri = URI.create("${keycloakProperties.url}/admin/realms/<realm>/clients/${clientId}/authz/resource-server/permission/scope")
        val proxy = keycloak.proxy(CustomScopePermissionsResource::class.java, uri)
        return proxy.findAll()
    }
}

interface CustomScopePermissionsResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    fun findAll(): List<ScopePermissionRepresentation>
}
© www.soinside.com 2019 - 2024. All rights reserved.