第 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>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>999.0.0-SNAPSHOT</version>
</dependency>
以下示例演示了如何使用 Java 客户端库来获取 master 域的详情:
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);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
如果您使用上述管理客户端创建的基本方法,则默认添加这些属性,因为 admin 客户端默认使用 org.keycloak.admin.client.JacksonProvider
类用于创建 ObjectMapper
,这将自动添加这些属性。但是,如果您在创建 Keycloak
对象时注入自己的 customJacksonProvider
,请确保在希望避免兼容性问题时使用上述属性初始化对象映射。
例如,请考虑 admin 客户端以您自己 MyCustomJacksonProvider
类进行实例化的情况,如下所示:
在这种情况下,请确保您的类 MyCustomJacksonProvider
从类 org.keycloak.admin.client.JacksonProvider
扩展,或者确保以上述方式手动配置 ObjectMapper
。在使用 KeycloakBuilder
创建管理客户端并且手动注入和创建 RestEasy 客户端时,应谨慎操作。