You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除PostgreSQL JDBC依赖并正常构建Keycloak 22.0.2?

解决Keycloak 22.0.2移除PostgreSQL驱动避免CVE-2024-1597漏洞的问题

问题分析

你删除的PostgreSQL驱动Jar包版本(42.6.0)与实际环境中的版本(42.7.10)不匹配,导致路径不存在报错;同时直接删除Jar包可能触发Keycloak构建时的依赖检查,引发错误。

解决方案

方法一:通过Keycloak扩展命令移除PostgreSQL驱动(推荐)

Keycloak 22采用Quarkus架构,PostgreSQL驱动是官方扩展的一部分,使用扩展管理命令移除能避免构建依赖错误:
在Dockerfile中添加以下命令:

# 移除PostgreSQL扩展
RUN /opt/keycloak/bin/kc.sh extension remove org.keycloak:keycloak-postgres
# 执行构建
RUN /opt/keycloak/bin/kc.sh build

该命令会自动清理对应的PostgreSQL驱动Jar包及相关配置,确保构建顺利完成。

方法二:手动删除正确版本的驱动Jar包

先确认驱动Jar的正确路径,再执行删除和构建:

  1. 先验证Jar包路径(可选,用于排查):
RUN ls -l /opt/keycloak/lib/lib/main/org.postgresql.*
  1. 删除正确版本的驱动Jar:
RUN rm -f /opt/keycloak/lib/lib/main/org.postgresql.postgresql-42.7.10.jar
# 执行构建
RUN /opt/keycloak/bin/kc.sh build

如果构建仍报错,说明Keycloak构建配置中仍依赖该驱动,此时建议使用方法一处理。

补充说明

  • 确保你的Keycloak配置使用的是其他数据库(如H2、MySQL等),避免因移除PostgreSQL驱动导致运行时错误。
  • 若使用默认的H2数据库,构建时可显式指定数据库类型,进一步避免驱动依赖问题:
RUN /opt/keycloak/bin/kc.sh build --db=h2

内容的提问来源于stack exchange,提问作者Chris McNeal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:02:42