Keycloak 15.0.2执行Javascript授权策略提示找不到ScriptEngine如何解决
问题根因
Java 15及更高版本已经正式移除了JDK内置的Nashorn JavaScript引擎,而Keycloak 15.0.2的JavaScript类型授权策略默认依赖该引擎执行自定义的JS脚本,因此触发找不到ScriptEngine的报错。
修复配置步骤
- 方案一(推荐,无需变更Java版本)
- 下载对应兼容版本的Nashorn独立依赖包:需要准备
nashorn-core(15.3及以上版本)、asm(9.0及以上版本)两个Jar包 - 将下载的两个Jar包放入Keycloak根目录下的
providers文件夹中 - 重启Keycloak服务,服务启动时会自动扫描加载新增的依赖组件,重启完成后即可正常执行JS授权策略
- 下载对应兼容版本的Nashorn独立依赖包:需要准备
- 方案二(无额外依赖,需要降级Java版本)
将运行Keycloak的JDK版本降级到Java 11,Java 11默认内置Nashorn引擎,无需额外添加任何依赖即可直接运行该JS授权策略。
内容的提问来源于stack exchange,提问作者TMR_OS
相关产品推荐
相关产品推荐

