我如何重新导入 keycloak 中的领域。如果它已经存在

kle*_*lee 5 keycloak

无法在 keycloak 版本 15.0.2 上使用 Keycloak 导入来导入领域 json。我正在 Docker 容器中运行 keycloak。

下面是compose中的docker卷

卷:

- ./keycloak-realm.json:/tmp/keycloak-realm.json
Run Code Online (Sandbox Code Playgroud)

keycloak 的环境变量

KEYCLOAK_IMPORT=/tmp/keycloak-realm.json -Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.migration.strategy=OVERWRITE_EXISTING
Run Code Online (Sandbox Code Playgroud)

导入失败并出现已存在错误。使用迁移策略时也遇到同样的错误。

即使存在,我如何导入领域?

来自Keycloak的错误:

04:47:48,047 信息 [org.keycloak.services](ServerService 线程池 -- 70)KC-SERVICES0003:不从文件 /tmp/keycloak-realm.json 导入领域 sso。它已经存在了。04:47:48,068 信息 [org.keycloak.services](ServerService 线程池 -- 70)KC-SERVICES0003:未从文件 /tmp/keycloak-realm.json 导入领域 sso。它已经存在了。

sve*_*ben 2

如果您使用官方 docker 镜像,则需要通过 JAVA_OPTS_APPEND 环境变量设置策略。在你的情况下:

KEYCLOAK_IMPORT=/tmp/keycloak-realm.json
JAVA_OPTS_APPEND=-Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.migration.strategy=OVERWRITE_EXISTING
Run Code Online (Sandbox Code Playgroud)

  • 天啊,这可行,但是,它会删除现有用户......这太糟糕了。我的目标是能够将配置从一个环境传播到另一个环境,但当前导入无法正确处理它,因为它删除了原始领域及其中的所有用户... (2认同)