Skip to content
xuexs edited this page Apr 28, 2015 · 1 revision

AcContentType和AcContent字段


Anycmd为访问受控的托管资源记录添加了AcContentTypeAcContent字段。 AcContentType字段取值形如:

  • text/javascript
  • text/xacml
  • text/javascript,fileLocation
  • text/xacml,fileLocation

当AcContextType字段的取值是 text/javascript,fileLocationtext/xacml,fileLocation时,对应的AcContent字段取值形如***“js/test.js”“xml/test.xacml”***(不一定局限于本地标识符或定位符)

附加在资源记录上的AcContentType和AcContent通常情况下应该直接存储值,并将这两个字段的值与资源记录一同读写。但是有些情况下可能需要将AcContent中的值存储在别的位置,比如AcContent中的值非常长,这时就可以考虑在AcContent中存储指向外部存储的url了。 ##两个字段够了吗 AcContentType和AcContent这两个字段是完备的,从这两个字段出发可以到达整个系统树中的任何节点。这两个字段可以容纳值,又可以容纳标识(标识是什么?标识是系统中的父节点为本节点内的资源定义的识别码。从根出出发将途径的节点定义的标识使用分隔符连接起来就是url(定位符)) 。不将文件系统看作我们的系统之外的系统,凡是我们的系统进程(进程是资源树)能够触及的事物都在我们的系统树上根与叶子没有分别,根可以是叶子,叶子也可以是根,这是角度问题。每一个节点都可以认为自己是根,没有任何分别。

##树 这是树的美妙。这跟任何事物都在离我们远去是一致的。我们往任何方向看都是一样的宇宙红移。我们就是中心,它们也是中心,我们是我们世界的中心它们是它们世界的中心。 记得有一个视频,是一个教授研究一辈子的数学变换,那个变换一定是树。一定是这样一种景象,将越靠近树干的枝越相对快速的变细,并将越远离树干的枝条和叶子越相对的快速的变粗,选任意一个叶子为参照物。这样的变换结果就是这个叶子成为根了。

思想是自由的。咱们没有足够的数学知识去参与他们但是咱们会比他们有更自由的想象力,这一点从来无需怀疑。

**扩展内容:**我不太了解超媒体,估计就是对资源进行分类、标识、识别,然后分类使用它们。类似"text/html"这种东西估计就是对资源进行分类,而且是有规律有组织有偏移地进行分类“text/html”这个东西使用了一个"/"记录和表达了组织结构。超媒体从整体上看就是一棵树,是符合banq所说的构造定律的一棵树。这棵树很深,从text/html这个节点开始的话,往下比如text/Html/body/div/table/tr/td/p/span/text。text/html中的text并不是根,再往上还有,一直到0 1,并且text/Html/body/div/table/tr/td/p/span/text这个这么深的树还没有到底,span/text中的text节点也不是叶子节点,叶子节点也是一直到0 1。 根和叶子是重合的。宇宙本来就是这样。根是0 1,一万层往上建设,一万层的高处还是0 1,宇宙的首尾是重合的。

人类相当牛逼了,以0 1为根居然已经建造出摩天大厦了 谁能保证text/gtml/body/div/table/tr/td/p/span/text这段枝最后这个text节点中的那个文字展示时所使用到的0 1物理开关跟这棵这么深的树的根节点所使用的那个0 1物理开关不是同一个开关? 谁能保证我们远望过去看到的一万亿光年外的那点数据不是我们身边的那个茶杯。

##AcContentType和AcContent在权限引擎中的作用 如何使用javascript或者xacml来参与鉴权? 大概是这一个样子:我们知道,鉴权流程是从整个树(所有的业务系统都是树)的根部开始的。从根节点开始捕获请求,经ResourceCodespace段(ResourceCodespace可以是层级结构,父子编码空间),再经ResourceType段(ResourceType也可以是层级结构,如同面向对象世界中的类的继承,父子类),然后定位当前请求的目标客体,接着考量目标客体上的每一个当前请求相关的属性,别忘了还有附加在客体上的组织结构属性,从目标客体上读取附加的组织结构属性值由此定位当前的客体所在的组织结构,由当前组织结构节点直接爬到组织结构根节点,然后从根节点开始下树再下到客体所属的组织结构节点。 以上这整个过程都在那棵树上,途径的每一个节点中都具有AcContentType和AcContent两个字段,这两个字段正是用来插入动态的脚本的,AcContent中可以承载javascript脚本。系统将与鉴权当前请求相关的数据通过javascript引擎公开给外部的javascript代码,在javascript代码中能够访问当前的operation是什么,当前被操作的resource record,以及当前的subject等信息,然后javascript代码根据这些信息进行一些简单的运算,并返回一个结果,比如这个结果值是Allow表示允许,NotAllow表示不允许,unKnown表示不知道允许或不允许,如果不知道允许还是不允许的话权限引擎继续沿着整棵树询问下一个节点,直到明确的知道允许还是不允许,如果走到流程的尽头也不知道允许还是不允许的话可以缺省为允许或者不允许,或者返回unKnown然后由引擎的调用者决定如何处理unKnown。