我按照Create a JAR with the scripts to deploy指南创建了一个自定义 Javascript 策略用于检查用户属性,看起来已经成功部署了。然而,在“创建策略”下拉列表中我无法看到策略名称,请问这个功能是否需要开启某些设置?请注意保留 HTML 标签。
将.jar
文件上传到/keycloak/standalone/deployments
后,它会显示WFLYSRV0010: Deployed "script.jar" (runtime-name : "script.jar")
而且没有任何错误。我还可以看到我的脚本文件旁边的{filename}.jar.deployed
。
环境设置:我使用 docker-compose
启动了一个版本为10.0.1
的容器。以下是我的 Docker Compose 文件内容:
version: "3.1"
services:
keycloak:
image: jboss/keycloak
restart: always
ports:
- 8080:8080
environment:
KEYCLOAK_PASSWORD: admin
KEYCLOAK_USER: admin
volumes:
- ./deployments:/opt/jboss/keycloak/standalone/deployments
keycloak-scripts.json:
{
"policies": [
{
"name": "my-policy",
"fileName": "my-script-policy.js",
"description": "My Policy from a JS file"
}
]
}
my-script-policy.js:
var context = $evaluation.getContext();
var contextAttributes = context.getAttributes();
if (contextAttributes.containsValue('kc.client.network.ip_address', '127.0.0.1')) {
$evaluation.grant();
}
非常感谢任何建议。