无法将 postgres 与 keycloak 一起使用

Dha*_*hta 6 jboss wildfly keycloak

我正在尝试将 postgres 与 keycloak 一起使用。关注文档

$ ls keycloak-9.0.0/modules/system/layers/keycloak/org/postgresql/main
  config.xml  postgresql-42.2.10.jar
Run Code Online (Sandbox Code Playgroud)

这是 config.xml 文件。 配置文件

$ ls keycloak-9.0.0/modules/system/layers/keycloak/org/postgresql/main
  config.xml  postgresql-42.2.10.jar
Run Code Online (Sandbox Code Playgroud)

这些是我在 standalone.xml standalone.xml 中所做的更改

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql">

    <resources>
        <resource-root path="postgresql-42.2.10.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

Run Code Online (Sandbox Code Playgroud)

我得到的错误。 错误

06:13:39,430 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 32) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("jdbc-driver" => "postgresql")
]) - failure description: "WFLYJCA0115: Module for driver [org.postgresql] or one of it dependencies is missing: [org.postgresql]"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

std*_*bar 6

我可以建议另一种不太可能出现问题的配置方法吗?我使用以下配置 PostgreSQL 和 Keycloak,它一直运行良好。关键是针对停止的 Keycloak 运行它(使用全新安装)。将以下内容保存为setup-keycloak.cli

embed-server --server-config=standalone.xml --std-out=echo

batch
#
# remove the default provided datasource
#
/subsystem=datasources/data-source=KeycloakDS/:remove

#
# add them
#
module add --name=org.postgres --resources=/path/to/postgresql-42.2.10.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)

/subsystem=datasources/data-source=KeycloakDS/:add(connection-url=jdbc:postgresql://localhost:5432/keycloak_database,driver-name=postgres,jndi-name=java:jboss/datasources/KeycloakDS,initial-pool-size=4,max-pool-size=64,min-pool-size=4,password=keycloak_user,user-name=keycloak_pass)

run-batch
Run Code Online (Sandbox Code Playgroud)

然后用$KEYCLOAK_HOME/bin/jboss.sh --file=setup-keycloak.cli. 这将删除 KeycloakDS 数据源,添加 PostgreSQL 模块,并使用您的参数重新创建 KeycloakDS 数据源。只要您拥有 PostgreSQL JDBC 驱动程序的本地副本,您就可以随时使用它来重现配置。