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

Keycloak 9.0.2脚本映射器缺失,无法添加请求头声明求助

解决Keycloak 9.0.2中找不到Script mapper的问题

我来帮你梳理几个可能的原因,按步骤排查应该能解决:

1. 先把Docker镜像版本钉死在9.0.2

你提到用的是Keycloak 9.0.2,但docker-compose里写的是jboss/keycloak:latest——这个标签会自动拉取最新镜像,大概率不是你要的9.0.2版本。不同版本的Keycloak对脚本映射器的启用规则差异很大,先把镜像改成明确的版本:

image: jboss/keycloak:9.0.2

改完后重启容器,确保运行的确实是9.0.2版本。

2. 确认开启了所有必要的预览特性

在Keycloak 9.x里,光开scripts特性可能不够,部分场景下还需要同时开启upload_scripts预览特性(虽然Script mapper是内置功能,但有些版本需要这俩一起开才能显示)。修改你的启动命令:

command:
  - "-b 0.0.0.0"
  - "-Djboss.socket.binding.port-offset=1000"
  - "-Dkeycloak.profile.feature.scripts=enabled"
  - "-Dkeycloak.profile.feature.upload_scripts=enabled"

重启后看日志,确认两个预览特性都显示“enabled”。

3. 别找错地方了!Script mapper在客户端的Mappers标签里

Script mapper是属于单个客户端的映射器,不是全局设置。你得先进入目标客户端的详情页,切换到Mappers标签,点击Add mapper按钮,在弹出的选项列表里找叫Script的那一项(注意不是全局的映射器配置)。

4. 检查客户端是否允许脚本运行

进入客户端的Settings标签,拉到Advanced区域,确认Allow Scripts选项已经勾选——9.x版本里这个选项默认是关闭的,不打开的话就算全局开了特性也看不到Script mapper。

5. 非Docker版本的额外配置

如果你用的是独立安装包,除了启动参数,还得改配置文件:找到standalone.xml(或standalone-ha.xml),在<profile>下的<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">节点里加这段配置:

<spi name="script">
    <provider name="default" enabled="true"/>
</spi>

然后启动时带上-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled参数。

按这些步骤走一遍,应该就能找到Script mapper了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:22:39