Аксиоматика - редактор условий - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть тема, подобная "accessTo" = ["123", "123-edit"], и ресурс, подобный "interestedId" = "123"

. Теперь я пытаюсь написать условие - где проверяется, что «isedId »объединено с« -edit »равно« 123- ».edit "in" AccessTo ".

Я пытаюсь написать такое правило

anyOfAny_xacml1(function[stringEqual], "accessTo", "interestedId"+"-edit") 

Это не позволяет сделать это.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

В дополнение к ответу от 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 ко всем значениям в сумке.

0 голосов
/ 28 ноября 2018

Поскольку продукты Axiomatics соответствуют спецификации XACML , предполагается, что все атрибуты по умолчанию содержат несколько значений (называемых «пакетами»).

Поэтому, если вы хотите добавить строку к атрибуту, используйте stringOneAndOnly функцию XACML для атрибута, чтобы указать, что атрибут может иметь только одно значение.

Итак, если вы имеете в виду, что accessTo имеет идентификатор атрибута как Attributes.access_subject.subject_id, interestedId имеет идентификатор атрибута как Attributes.resource.resource_id, а anyOfAny_xacml1 эквивалентен anyOfAny функции XACML, результирующее условие будет выглядетькак,

anyOfAny(function[stringEqual], Attributes.access_subject.subject_id, stringOneAndOnly(Attributes.resource.resource_id) + "-edit")
...