【问题标题】:How to use Erlang conditionals (RabbitMQ and Erlang)如何使用 Erlang 条件(RabbitMQ 和 Erlang)
【发布时间】:2018-06-17 13:11:57
【问题描述】:

我试图弄清楚如何在rabbitmq.config 中创建一些更细粒度的身份验证/授权。我认为它使用的语言被称为 Erlang(对吗?)。

我尝试了以下尝试使用条件句,但失败了:

{vhost_access_query,
  {in_group,
    {'or', [
      "CN=${vhost}-users,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
      "CN=${vhost}-admins,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
      "CN=${vhost}-consumers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com",
      "CN=${vhost}-producers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"
    ]}
}},

反正就是不喜欢。我试图做的是说四个组中的任何一个组都允许虚拟主机访问 - 其中,group1,或group2,或group3等。

【问题讨论】:

    标签: erlang rabbitmq


    【解决方案1】:

    旁白:RabbitMQ 是用 Erlang 编写的。配置文件使用 Erlang 风格的术语({a, tuple}["a", list]),但它不是 Erlang。

    查看 RabbitMQ documentation for the LDAP plugin,它说 'or' 需要一个子查询列表

    {'or', [SubQuery1, SubQuery2, SubQuery3, ...]}
    

    这意味着你真正需要的是这样的:

    {vhost_access_query,
        {'or',
            [
             {in_group, "CN=${vhost}-users,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
             {in_group, "CN=${vhost}-admins,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
             {in_group, "CN=${vhost}-consumers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"},
             {in_group, "CN=${vhost}-producers,ou=vhosts,ou=MIS,ou=ISD,ou=US,ou=Servers,dc=domain,dc=com"}
            ]
        }
    },
    

    ...但不要引用我的话(除非我是对的);我从未使用过 LDAP 插件。

    【讨论】:

    • 这似乎适用于 Roger Libscombe 引用的那部分。
    猜你喜欢
    • 2014-02-10
    • 2012-03-29
    • 1970-01-01
    • 2018-04-05
    • 2017-07-29
    • 2013-08-10
    • 2017-12-20
    • 2018-09-22
    • 2014-07-17
    相关资源
    最近更新 更多