5.3. 注册供应商实现


提供程序通过将 JAR 文件复制到 providers 目录中来注册到服务器。

如果您的供应商需要尚未由 Keycloak 提供的其他依赖项,请将它们复制到 供应商 目录中。

在注册新供应商或依赖项 Keycloak 后,需要使用非优化的启动或 kc.[sh|bat] build 命令重新构建。

注意

提供程序 JAR 不会在隔离的类加载器中加载,因此不要在提供程序 JAR 中包含与内置资源或类冲突的资源或类。特别是包含 application.properties 文件或覆盖 commons-lang3 依赖项,如果删除了供应商 JAR,则会导致 auto-build 失败。如果您包含冲突的类,您可能会在服务器开始日志中看到分割软件包警告。不幸的是,并非所有内置的 lib jar 都由分割软件包警告逻辑检查,因此您需要在捆绑或包含传输依赖项前检查 lib 目录 JAR。如果存在冲突,可以通过删除或重新打包现有类来解决。

如果您有冲突的资源文件,则不会发出警告。您应该确保 JAR 的资源文件具有包含该提供程序唯一内容的路径名称,或者您可以检查 "install root"/lib/lib/main 目录下的 JAR 内容中是否存在 some.file,如下所示:

find . -type f -name "*.jar" -exec unzip -l {} \; | grep some.file
Copy to Clipboard

如果发现服务器因为与已删除供应商 JAR 相关的 NoSuchFileException 错误而启动,则运行:

./kc.sh -Dquarkus.launch.rebuild=true
Copy to Clipboard

这将强制 Quarkus 重建类加载相关索引文件。从那里,您应能够执行非优化的启动或构建,而无需例外。

5.3.1. 禁用供应商

您可以通过将 provider 的 enabled 属性设置为 false 来禁用供应商。例如,要禁用 Infinispan 用户缓存提供程序,请使用:

bin/kc.[sh|bat] build --spi-user-cache-infinispan-enabled=false
Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat