第 13 章 Red Hat build of Keycloak admin client


Red Hat build of Keycloak admin client 是一个 Java 库,可帮助访问和使用 Red Hat build of Keycloak Admin REST API。该程序库在运行时需要 Java 11 或更高版本(RESTEasy 依赖项强制实施这个要求)。要从应用程序中使用它,请添加对 keycloak-admin-client 库的依赖项。例如,使用 Maven:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>999.0.0-SNAPSHOT</version>
</dependency>
Copy to Clipboard Toggle word wrap

以下示例演示了如何使用 Java 客户端库来获取 master 域的详情:

import org.keycloak.admin.client.Keycloak;
import org.keycloak.representations.idm.RealmRepresentation;
...

Keycloak keycloak = Keycloak.getInstance(
    "http://localhost:8080",
    "master",
    "admin",
    "password",
    "admin-cli");
RealmRepresentation realm = keycloak.realm("master").toRepresentation();
Copy to Clipboard Toggle word wrap

admin 客户端的完整 Javadoc 位于 API 文档

13.1. 与红帽构建的 Keycloak 服务器兼容

Red Hat build of Keycloak admin 客户端旨在与 Red Hat build of Keycloak 服务器的多个版本一起工作。管理客户端可能会支持较早发布的红帽构建的 Keycloak 服务器版本,它比客户端和较早版本的 Keycloak 服务器发布。因此,底层"弹性"类的 Java 字段代表请求/响应正文的 JSON 属性(如上一节中显示的 RealmRepresentation 类)可能并不完全相同。

为了避免兼容性问题,请确保在覆盖下的 admin 客户端使用 com.fasterxml.jackson.databind.ObjectMapper 类,使用这两个属性初始化:

objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Copy to Clipboard Toggle word wrap

如果您使用上述管理客户端创建的基本方法,则默认添加这些属性,因为 admin 客户端默认使用 org.keycloak.admin.client.JacksonProvider 类用于创建 ObjectMapper,这将自动添加这些属性。但是,如果您在创建 Keycloak 对象时注入自己的 customJacksonProvider,请确保在希望避免兼容性问题时使用上述属性初始化对象映射。

例如,请考虑 admin 客户端以您自己 MyCustomJacksonProvider 类进行实例化的情况,如下所示:

Keycloak.getInstance(
                "http://localhost:8080",
                "master",
                "admin",
                "admin",
                "admin-cli",
                null,
                null,
                new MyCustomJacksonProvider()
        );
Copy to Clipboard Toggle word wrap

在这种情况下,请确保您的类 MyCustomJacksonProvider 从类 org.keycloak.admin.client.JacksonProvider 扩展,或者确保以上述方式手动配置 ObjectMapper。在使用 KeycloakBuilder 创建管理客户端并且手动注入和创建 RestEasy 客户端时,应谨慎操作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat