0

使用以下脚本,我可以将提供程序添加到我的 keycloak 实例中。

embed-server --server-config=standalone.xml
/subsystem=keycloak-server:list-add(name=providers, value=module:com.example.InviteUserRequiredAction)
stop-embedded-server

但是,当应用程序重新启动时,它会被添加两次(或者服务器重新启动多次)。我只想有条件地添加提供程序,但我找不到如何查询我正在添加的提供程序是否存在的方法。

所以最后它可能看起来像:

if (outcome != success) of /subsystem=keycloak-server:here-should-be-the-query
   ...
end-if

有人可以告诉我如何查询providers名称module:com.example.InviteUserRequiredAction吗?

谢谢

4

1 回答 1

1

最后,我完成了自定义脚本,因为我无法仅使用 cli 找到方法。

#!/bin/bash
REQUIREDACTION=module:com.example.InviteUserRequiredAction
ADDREQUIREDACTION=$(cat <<EOF
embed-server --server-config=standalone.xml
/subsystem=keycloak-server:list-add(name=providers, value=$REQUIREDACTION)
stop-embedded-server
EOF
);

cat <<EOF > script.cli
embed-server --server-config=standalone.xml
/subsystem=keycloak-server:read-attribute(name=providers)
stop-embedded-server
EOF

OUTPUT=`/opt/jboss/keycloak/bin/jboss-cli.sh --file=script.cli`
echo $OUTPUT | grep -q "$REQUIREDACTION"
if [ $? -ne 0 ] ; then
  echo going to add provider $REQUIREDACTION
  echo "$ADDREQUIREDACTION" > script.cli
  /opt/jboss/keycloak/bin/jboss-cli.sh --file=script.cli
else
  echo provider $REQUIREDACTION already exists
fi
于 2021-06-30T16:35:17.370 回答