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

按Keycloak文档部署Jar后JavaScript策略未显示的问题求助

Keycloak JavaScript策略未显示问题排查方案

以下是针对你遇到的JS策略未出现在客户端策略下拉菜单的排查步骤:

  • 检查META-INF配置文件
    必须在META-INF目录下创建keycloak-scripts.json文件,用于声明你的策略脚本,示例格式如下:

    {
      "policies": [
        {
          "name": "自定义JS策略",
          "fileName": "policy.js",
          "description": "自定义JavaScript授权策略"
        }
      ]
    }
    

    确保JSON语法完全正确,无引号、逗号遗漏或格式错误。

  • 验证policy.js脚本规范
    脚本必须遵循Keycloak要求,定义evaluate(context)核心方法,示例:

    function evaluate(context) {
      const user = context.getUser();
      // 自定义授权逻辑,示例:判断用户是否拥有指定角色
      return user.hasRole('admin');
    }
    

    排查脚本内是否存在语法错误,比如未闭合的代码块、未定义变量等。

  • 确认Jar包打包结构
    解压生成的Jar包,检查内部目录结构是否符合要求:

    your-policy.jar
    ├── META-INF/
    │   └── keycloak-scripts.json
    └── policy.js
    

    注意不要将外层源目录打包进Jar,正确的打包方式是进入源目录后执行jar cvf policy.jar .命令。

  • 重启Keycloak服务
    执行kc.bat build后,必须重启Keycloak服务(执行kc.bat start),仅执行build操作不会加载新的策略提供者。

  • 检查版本兼容性
    确认Keycloak版本与你参考的官方文档版本匹配,17+版本基于Quarkus架构,部分配置逻辑与旧版不同。

  • 查看日志定位错误
    启动Keycloak时添加--log-level=DEBUG参数,查看启动日志中是否有脚本加载失败的报错,比如文件缺失、JSON解析失败、脚本语法错误等信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:09