2015年3月10日阿尔法的绿洲工作草案01 ( ALFA - for -xacml-v1.0- 10 01)规定了常数值。
3.15常数值 常量值可以出现在策略表达式中。ALFA直接支持字符串、整数、双和布尔类型的常量。字符串以单引号或双引号引用。整数由一个数字和一个可选的减号组成。Double由一个带有小数点的数字和一个可选的减号组成。布尔值由真值和假值组成,没有引号。其他数据类型使用字符串、后跟冒号和数据类型的名称来表示。
这意味着,您可以使用该示例中的常量值(而report是常量值):
target clause requestedType == "report"但是问题是,一旦ALFA文件增长,并且您已经编写了所有的常量值report,您可能想要将常量值更改为my.company.attributes.medicalReport。为了做到这一点,您必须找到并替换常量值的所有出现。
因此(为了避免冗余),constants是在其他语言中发明的,您可以在其中定义smth。喜欢
const string REPORT_TYPE = "my.company.attributes.medicalReport"或者更有表现力:
const integer REPORT_TYPE_ID = 3或者更优雅:
const enum SUBJECT_TYPES { PATIENT, USER, EXAM, REPORT }在定义了这些常量之后,我可以编写目标如下:
target clause requestedType == REPORT_TYPE_IDALFA是否支持常量,或者是否有方法“模拟”它们(可能是返回所需值的函数)?
发布于 2018-05-25 21:06:54
还没!这绝对是我们想要的一个特性。我们也有类似的要求,所以请继续关注。
https://stackoverflow.com/questions/50536528
复制相似问题