6.3. 注册供应商实现
通过将 JAR 文件复制到提供程序目录,将 提供程序 注册到服务器。
如果您的供应商需要没有由 Keycloak 提供的额外依赖项,请将它们复制到 供应商 目录中。
注册新供应商或依赖项 Keycloak 后,需要使用非优化启动或 kc.[sh|bat] build 命令重建。
供应商 JAR 不加载在隔离的类加载器中,因此不要包含与内置资源或类冲突的供应商 JAR 中的资源或类。特别是包含 application.properties 文件或覆盖 commons-lang3 依赖项,如果删除了供应商 JAR,则 auto-build 会导致 auto-build 失败。如果您包含冲突的类,您可能会在服务器的启动日志中看到 split package 警告。不幸的是,并非所有内置 lib jar 通过 split 软件包警告逻辑检查,因此您需要在捆绑或包含传输依赖关系之前检查 lib 目录 JAR。如果存在冲突,可以通过删除或重新打包出错类来解决。
如果您已有冲突的资源文件,则不会发出警告。您应该确保 JAR 的资源文件具有包含该提供程序唯一内容的路径名称,或者您可以检查 "install root"/lib/lib/main 目录下的 JAR 内容中是否存在 some.file,如下所示:
find . -type f -name "*.jar" -exec unzip -l {} \; | grep some.file
find . -type f -name "*.jar" -exec unzip -l {} \; | grep some.file
如果发现您的服务器因为与已删除的供应商 JAR 相关的 NoSuchFileException 错误而无法启动,则运行:
./kc.sh -Dquarkus.launch.rebuild=true --help
./kc.sh -Dquarkus.launch.rebuild=true --help
这将强制 Quarkus 重建相关的索引文件。您可以从那里执行非优化的启动或构建,而无需例外。
6.3.1. 禁用供应商 复制链接链接已复制到粘贴板!
您可以通过将供应商的 enabled 属性设置为 false 来禁用供应商。例如,禁用 Infinispan 用户缓存提供程序使用:
bin/kc.[sh|bat] build --spi-user-cache-infinispan-enabled=false
bin/kc.[sh|bat] build --spi-user-cache-infinispan-enabled=false