`
mimload
  • 浏览: 10468 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

alfresco中的权限机制

阅读更多

Alfresco权限机制

 一. Alfresco平台权限设计:

     Alfresco平台中权限粒度细化到对象级别,争对具体对象,又将权限分为以下18种基本权限,

如下表:

权限名 描述

ReadProperties 读取对象的元数据

WriteProperties 写对象的元数据

ReadChildren 读下级节点

ReadContent 读对象内容(实体文件)

WriteContent 写对象内容

ExecuteContent 执行对象内容

DeleteNode 删除对象

DeleteChildren 删除下级对象

CreateChildren 创建下级对象

LinkChildren 将其它对象挂接到当前对象下

DeleteAssociations 删除关联对象

ReadAssociations 读取关联对象

CreateAssociations 创建关联对象

ReadPermissions 读取当前对象的权限集

ChangePermissions 修改当前对象的权限集

Flatten Lock 对象加锁 Unlock 对象解锁

在这18种基本权限上,又可以扩展多个权限集。平台默认的权限集包括以下8个常用应用权限集,如下表:

权限集名称 描述 包含元子权限

Read 读权限 ReadProperties,ReadChildren,ReadContent

Write 写权限 WriteProperties,WriteContent

Delete 删除权限 DeleteNode,DeleteChildren

AddChildren 添加子节点权限 CreateChildren,LinkChildren

Execute 执行权限 ExecuteContent

CheckIn 签入权限 Unlock

CheckOut 签出权限 Lock

CancelCheckOut 取消签出权限 Unlock

在以上8种常用权限集的基本上,又可以扩展多个角色权限集。平台默认的权限集包括:

 权限集名称 描述 包含的子权限集

Consumer 使用者 Read

Editor 参与者 Consumer,Write,CheckOut,ReadPermissions

Contributor 协调员 Consumer,AddChildren,ReadPermissions

Collaborator 合作者 Editor,Contributor

Coordinator 系统管理员 拥有所有权限

Administrator 超级管理员 拥有所有权限

RecordAdministrator 记录管理员 ReadProperties,ReadChildren,WriteProperties,ReadContent,DeleteChildren,CreateChildren,LinkChildren,DeleteAssociations,CreateAssociations

 

二. Alfresco平台中用户、组的设计 Alfresco中用户可以隶属于多个组,一个组也可以包括多个成员(组和用户);

 

三. Alfresco平台ACL(访问控制列表)机制 Alfresco中,通过ACL机制实现对文档的权限控制。 ACL包含多个用户、组的访问权限,如下表:

成员名(组或用户) 权限集名

Group1 Consumer

User1 Editor

User2 Read

注:组中的所有成员拥有所在组的权限。

 

四. Alfresco中权限机制设计:

    内容库中的每一个对象(包括文件夹和文件等)都关系一个ACL对象。当用户访问内容库对象的时候,先根据该对象对应的ACL里查找当前用户对应该对象的权限。判断当前用户是否拥有操作该对象的相关权限,从而实现内容库对象的权限管理。 Alfresco中的权限继承机制允许内容库对象继承父级节点的权限,因此,在对象创建的时候不必为每一个对象分配ACL。只要为目录结构分配好权限,在对象创建以后默认继承父级节点权限。通过用户、组、ACL的灵活配置,可以实现复杂的内容安全控制。

 

五. Alfresco中权限机制的具体实现在alfresco底层,把对象的操作规定了一个接口:NodeService 将对象的各种操作抽象为几种基本方法,如:getProperties();,setProperties();将这些方法进行拦截,拦截的工作是通过当前操作用户,当前操作的对象id,当前执行的操作,判断是否可以调用该方法,从而实现在底层实现对对象权限的控制。

分享到:
评论

相关推荐

    asp.net知识库

    利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文...

    基于jbpm与activiti的工作流平台技术架构介绍

    10.Alfresco Activiti 5.8 11.Compass + Lucene 12.JasperReport 4.5 13.JavaMail 14.Other: Log4j,Velocity,Sitemesh,Jfreechart,Jforum,Solr 15.Maven 2 3.BPMX3的组件构建方式 BPMX3同时也是基于组件构...

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包---java 源码 大量 实例

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包3

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包4

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

Global site tag (gtag.js) - Google Analytics