第 13 章 Red Hat build of Keycloak admin client
使用红帽构建的 Keycloak admin 客户端来访问红帽构建的 Keycloak Admin REST API。
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 客户端时,应谨慎操作。