8.6. 授权客户端 java API
根据您的要求,资源服务器应该能够以编程方式管理资源,甚至以编程方式检查权限。如果使用 Java,您可以使用 Authorization Client API 访问红帽构建的 Keycloak 授权服务。
它适用于希望访问服务器提供的不同端点的资源服务器,如令牌端点、资源和权限管理端点。
8.6.1. Maven 依赖项 复制链接链接已复制到粘贴板!
8.6.2. Configuration 复制链接链接已复制到粘贴板!
客户端配置在 keycloak.json
文件中定义,如下所示:
realm (必需)
域的名称。
auth-server-url (必需)
红帽构建的 Keycloak 服务器的基本 URL。所有其他红帽构建的 Keycloak 页面和 REST 服务端点都源自此内容。它通常采用 https://host:port 格式。
resource (必需)
应用程序的 client-id。每个应用都有一个 client-id,用于识别应用程序。
凭证 (必需)
指定应用程序的凭证。这是一个对象表示法,其中键是凭证类型,值为凭证类型的值。
配置文件通常位于应用程序的 classpath 中,客户端要尝试找到
文件的默认位置。
keycloak.json
8.6.3. 创建授权客户端 复制链接链接已复制到粘贴板!
考虑您在 classpath 中有一个
文件,您可以创建一个新的 keycloak.json
实例,如下所示:
AuthzClient
// create a new instance based on the configuration defined in a keycloak.json located in your classpath AuthzClient authzClient = AuthzClient.create();
// create a new instance based on the configuration defined in a keycloak.json located in your classpath
AuthzClient authzClient = AuthzClient.create();
8.6.4. 获取用户权限 复制链接链接已复制到粘贴板!
下面是如何获取用户权限的示例:
以下是如何获取一个或多个资源的用户权限的示例: