我有类似"accessTo" = ["123", "123-edit"]
的主题
和"interestedId" = "123"
之类的资源
现在,我尝试编写一个条件-在其中检查与“ -Access”中的“ -edit”串联的“ interestedId”等于“ 123-edit”。
我试图写这样的规则
anyOfAny_xacml1(function[stringEqual], "accessTo", "interestedId"+"-edit")
不允许这样做。
任何帮助表示赞赏。
最佳答案
除了Keerthi S的答案...
如果您知道interestedId
应该只有一个值,则可以这样做以防止发生不确定的情况:stringBagSize(interestedId) == 1 && anyOfAny(function[stringEqual], accessTo, stringOneAndOnly(interestedId) + "-edit")
如果存在多个值,则评估将在达到仅期望一个值的功能之前停止。如果存在多个值,则此条件将返回false。
另一方面,如果interestedId
可以具有多个值,则可以使用:anyOfAny(function[stringEqual], accessTo, map(function[stringConcatenate],interestedId, "-edit"))
map函数会将stringConcatenate函数应用于包中的所有值。