【问题标题】:Jboss cli conditional list-addJboss cli条件列表添加
【发布时间】:2021-09-12 06:16:50
【问题描述】:

通过以下脚本,我可以将提供程序添加到我的 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

谁能告诉我如何查询名称为module:com.example.InviteUserRequiredActionproviders

谢谢

【问题讨论】:

  • list.get操作呢?
  • 确切的语法是什么?我正在尝试/subsystem=keycloak-server:list-get(name=providers),似乎有一些问题。
  • 我没有安装 keycloak,但是如果您将提供程序安装在特定索引处,则可以改为读取该索引
  • 嗯,但我不知道安装时的索引。并且可能会有一些变化。因此,我试图找出是否有可能以某种方式查询提供程序并查找指定的名称是否已经存在。
  • 你可以 /subsystem=keycloak-server:list-add(name=providers, value=module:com.example.InviteUserRequiredAction, index=0)

标签: jboss keycloak jboss-cli


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-10-13
    • 2011-01-11
    • 2022-01-18
    • 2021-05-05
    • 1970-01-01
    • 2020-10-05
    • 2015-10-19
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多