【问题标题】:Constants (constant variables) in ALFAALFA 中的常量(常量变量)
【发布时间】:2018-05-25 20:36:14
【问题描述】:

2015 年 3 月 10 日的 ALFA OASIS 工作草案 01 (alfa-for-xacml-v1.0-wd01) 提到了常量值

3.15 常数值

常量值可以出现在策略表达式中。 ALFA 支持字符串、整数、 直接双打和布尔值。字符串用单引号或 双引号。整数由一个数字和可选的减号组成 符号。 Double 由一个带小数点的数字和可选的 减号。布尔值由值 true 和 false 组成,没有 引号。其他数据类型使用字符串表示,后跟 冒号和数据类型的名称..

这意味着,您可以使用该示例中的常量值(而 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_ID

ALFA 是否支持常量或有办法“模拟”它们(可能是返回所需值的函数)?

【问题讨论】:

    标签: authorization abac alfa


    【解决方案1】:

    还没有!这绝对是我们想要拥有的功能。我们也有类似的要求,敬请期待。

    【讨论】:

    • 路线图是什么?大概什么时候出新版本?
    • 用一个总是返回一个值的函数来模拟它们怎么样?
    猜你喜欢
    • 2016-04-21
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2023-03-06
    • 2020-06-26
    相关资源
    最近更新 更多