У меня есть индивидуальное требование, в котором я хочу решить, можно ли получить доступ к API в зависимости от определенных ролей. Я использую Spring framework. Я хочу поддержать что-то вроде этого:
1. (R1 || R2) && (R3 || R4)
2. (R1) || (R2 && R3)
где R
представляет роль. ||
и &&
- логические операторы, обозначающие соответственно or
и and
. Это выражение следует сравнивать с входным массивом ролей. Итак, если входным массивом является [R2, R4], тогда первое выражение оценивается как истинное, а второе выражение оценивается как ложное.
Я нашел нечто подобное с помощью SPEL, но вместо R
, который может быть любой строкой, например customer, employee и т. Д., Они используют значение логических выражений, например true
или 6 == 6
и т. Д.