如何使用 Mule 表达式语言检查属性是否存在于值中
How to check if attribute is present in value using Mule expression language
我想根据“groupmembership”header 属性检查登录用户的授权。
的输出
<logger level="INFO" message="groups are =#[message.inboundProperties['GROUPMEMBERSHIP']]" doc:name="Logger"/> is
[groups are =cn=ZZZ-XXXX-Write-Users,ou= ZZZ-XXXX,ou=1234,ou=Groups,dc=someone,dc=net]
现在一个用户可以拥有多个组成员身份,但我只想检查用户是否是“ZZZ-XXXX-Write-Users”的成员?
MEL 中有没有办法检查它,比如
<when expression="#[message.inboundProperties.GROUPMEMBERSHIP.cn != ' ZZZ-XXXX-Write-Users ']">
这是正确的方法还是我遗漏了什么?
你描述的场景看起来更像是流量控制的东西。
在那种情况下,我会说您只在选择路由器中使用 MEL 表达式:
<choice doc:name="Choice">
<when expression="#[!message.inboundProperties.GROUPMEMBERSHIP.cn.equals('ZZZ-XXXX-Write-Users')]">
<!-- DO SOMETHING -->
</when
<otherwise>
<!-- DO SOMETHING ELSE -->
</otherwise>
</choice>
只是对使用 equals 比较字符串的一个小改动 ;)。
另一个选项,正如我们在这里讨论的流量控制,是一个过滤器。
如果表达式的计算结果不为真,则表达式过滤器将忽略该消息。问题是,它要么通过,要么不通过,你不能有替代路由,甚至连一条表明消息已被过滤的日志消息都没有。
<expression-filter expression="#[!message.inboundProperties.GROUPMEMBERSHIP.cn.equals('ZZZ-XXXX-Write-Users')]" doc:name="Expression"/>
HTH
我想根据“groupmembership”header 属性检查登录用户的授权。
的输出<logger level="INFO" message="groups are =#[message.inboundProperties['GROUPMEMBERSHIP']]" doc:name="Logger"/> is
[groups are =cn=ZZZ-XXXX-Write-Users,ou= ZZZ-XXXX,ou=1234,ou=Groups,dc=someone,dc=net]
现在一个用户可以拥有多个组成员身份,但我只想检查用户是否是“ZZZ-XXXX-Write-Users”的成员?
MEL 中有没有办法检查它,比如
<when expression="#[message.inboundProperties.GROUPMEMBERSHIP.cn != ' ZZZ-XXXX-Write-Users ']">
这是正确的方法还是我遗漏了什么?
你描述的场景看起来更像是流量控制的东西。 在那种情况下,我会说您只在选择路由器中使用 MEL 表达式:
<choice doc:name="Choice">
<when expression="#[!message.inboundProperties.GROUPMEMBERSHIP.cn.equals('ZZZ-XXXX-Write-Users')]">
<!-- DO SOMETHING -->
</when
<otherwise>
<!-- DO SOMETHING ELSE -->
</otherwise>
</choice>
只是对使用 equals 比较字符串的一个小改动 ;)。
另一个选项,正如我们在这里讨论的流量控制,是一个过滤器。 如果表达式的计算结果不为真,则表达式过滤器将忽略该消息。问题是,它要么通过,要么不通过,你不能有替代路由,甚至连一条表明消息已被过滤的日志消息都没有。
<expression-filter expression="#[!message.inboundProperties.GROUPMEMBERSHIP.cn.equals('ZZZ-XXXX-Write-Users')]" doc:name="Expression"/>
HTH