权限控制是liferay4.0以后增加的新特性。在liferay中开发权限是一件很容易的事情,基上都是通过定义xml来实现。
默认的权限定义的xml文件放portal/portal-ejb/classes/resource-actions中
首先,我们来看看给自己的portlet加上权限控制,主要要完成以下四步操作(DRAC):
1. Define all resources and their permissions.
先定义所有所需要的权限(包括portlet resource和model resource)
2. For all the resources defined in step 1, register them into the permission system. This is also known
simply as “adding resources.”
当定义完权限后,我们需要把权限的定义注册到权限系统中,即把权限相关信息保存到数据库中
3. Associate the necessary permissions to these resources.
把所需的permission关联到resources上
4. Check permission before returning resources.
在相应的位置加上权限检验的方法
在解析上面四个步骤以前,有两个定义是非常重要的:
1. Resource-在portal系统中,可以简单的认为Resource是一个个可以操作的实体对象。举个例子:一般resources包括portlets(如:Message Boards,Calendar, etc),java类(如:Message Board Topics,Calendar Events, etc)还有flies(如:documents,images,etc)
2. Permission-一个个可运行的权限动作,都已经在resourcez中定义了。举个例子:“查看calendar的portlet”这个权限动作已经通过resource在liferay的权限系统中定义
下面对其中的第四点进行说明:
Liferay中的权限的检验方法很多,但是不是都好用,我们采用的是
<c:if test="<%= PortletPermission.contains(permissionChecker, plid, PortletKeys.CALENDAR, ActionKeys.ADD_EVENT) %>">
把要检验的资源放在</c:if>之间。在PortletKeys.CALENDAR和ActionKeys.ADD_EVENT处,换成自己定义的portlet文件的的名字和在ActionKeys里面定义的操作就可以了。
在定义完权限的resource后,我们需要在default.xml中加入对应的path,Default.xml的路径在portal(-ext).properties中可以配置
resource.actions.configs=resource-actions/default.xml
我们可以看到liferay的权限定义分<portlet-resource>和<model-resource>两种,portlet-resource中定义的,我们可以在上面看到,主要可以控制portlet的查看,配置权限,还有就是可以控制按钮一类设置的权限,model-resource的权限控制到每条记录上。下面是关于日历的xml文件的配置帮助理解。
- <resource-action-mapping>
-
- <portlet-resource>
-
- <portlet-name>8</portlet-name>
-
- <supports>
-
- <action-key>ADD_EVENT</action-key>
-
- <action-key>CONFIGURATION</action-key>
-
- <action-key>VIEW</action-key>
-
- supports>
-
- <community-defaults>
-
- <action-key>VIEW</action-key>
-
- community-defaults>
-
- <guest-defaults>
-
- <action-key>VIEW</action-key>
-
- guest-defaults>
-
- <guest-unsupported>
-
- <action-key>ADD_EVENT</action-key>
-
- </ guest-unsupported>
-
- </ portlet-resource>
-
- <model-resource>
-
- <model-name>com.liferay.portlet.calendar.model.CalEvent</model-nam>
-
- <portlet-ref>
-
- <portlet-name>8</portlet-name>
-
- </portlet-ref>
-
- <supports>
-
- <action-key>DELETE</action-key>
-
- <action-key>PERMISSIONS</action-key>
-
- <action-key>UPDATE</action-key>
-
- <action-key>VIEW</action-key>
-
- supports>
-
- <community-defaults>
-
- <action-key>VIEW</action-key>
-
- community-defaults>
-
- <guest-defaults>
-
- <action-key>VIEW</action-key>
-
- guest-defaults>
-
- <guest-unsupported>
-
- <action-key>UPDATE</action-key>
-
75. </ guest-unsupported>
76.
77. </model-resource>
78.
79. </resource-action-mapping>
分享到:
相关推荐
### Liferay权限文件说明 #### 一、概述 在Liferay平台中,权限管理是非常重要的一个环节,它确保了系统的安全性和数据的访问控制。本文档主要介绍的是`permissions.xml`文件及其相关配置,这对于理解如何在...
### Liferay权限管理系统详解 Liferay是一款开源的企业级门户平台,提供了一系列强大的工具和服务,用于构建和管理企业网站、社区和应用程序。其中,权限管理是其核心功能之一,旨在帮助企业控制用户对不同资源的...
### Liferay权限管理详解 #### 一、企业管理与权限层级 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用对于用户权限控制的各种需求。本文档将详细解析Liferay内部的权限管理模型及其运作机制。 ##### ...
【Liferay数据库表结构说明文档】 Liferay是一个开源的企业级门户平台,它的核心功能之一是管理用户、组织、权限和内容。为了实现这些功能,Liferay维护着一系列的数据库表来存储和管理这些数据。本文档主要关注的...
在这个“liferay详细讲解 liferay项目完全讲解”的资料包中,我们可以期待深入了解到关于Liferay的核心概念、开发实践以及与其相关的技术。 首先,我们看到一个名为“JBPM数据库表说明.doc”的文件,这暗示了...
"liferay_permissions.rar_liferay"这个压缩包可能包含的就是Liferay权限系统的数据库结构图,这对于理解Liferay的权限管理机制至关重要。 Liferay的权限系统基于Spring Security(原Acegi Security)框架,采用ACL...
- **覆盖Language.properties文件**:说明了如何更改Liferay的国际化字符串。 #### 六、Ext-plugins 第六章介绍了如何利用Ext-plugins来扩展Liferay的功能。 - **创建Ext-plugin**:指导如何创建一个基本的Ext-...
`Liferay+5.1.1+安装与整合CAS.pdf`很可能是关于特定Liferay版本(5.1.1)与CAS整合的教程,内容可能涉及安装过程、配置步骤以及解决常见问题的策略。 总的来说,理解和掌握Liferay与CAS的整合,对于构建安全、高效...
在维护方面,Liferay提供了详细的文档和社区支持,帮助用户解决在使用过程中遇到的问题。 #### 五、案例研究与最佳实践 Liferay Portal 6在全球范围内有众多成功案例,涉及金融、教育、医疗等多个行业。例如,某...
- **获取Liferay**: 详细说明了如何从官方网站或其他渠道获取Liferay安装包。 - **安装一个捆绑**: 指导用户如何安装包含所有必需组件的Liferay捆绑包。 - **为企业安装Liferay**: 针对大型企业环境的特殊要求提供了...
【标题】"liferay-portal文档集合"是一个关于Liferay Portal的综合资源包,其中包含了对JSR-168规范的深入解析、Liferay Portal数据库结构的详细说明以及权限管理的相关文档。这些资料对于理解并操作Liferay Portal...
4. **Liferay开发环境配置说明文档**: 配置Liferay开发环境通常涉及安装JDK、设置Java环境变量、下载Liferay IDE或Eclipse插件、配置Tomcat或Jetty服务器、导入Liferay项目、数据库连接设置等步骤。此外,了解...
以下是对Liferay环境部署过程的详细说明。 **1. 安装配置文件** 在开始部署前,你需要准备一系列的安装文件和配置文件,包括: - **liferay-portal-tomcat-6.2.0-ce-ga1-20131101192857659.zip**: 这是Liferay的...
根据提供的信息,我们可以总结出以下关于“Liferay Portal 4.0 QuickStart Guide”的关键知识点: ### Liferay Portal 4.0 QuickStart Guide #### 一、简介 本快速入门指南旨在帮助那些新接触 Liferay Portal 或...
- **权限管理**:确保只有授权的用户或服务能访问JSON Web服务,这可以通过Liferay的安全性和访问控制机制实现。 - **性能优化**:批量处理请求,减少不必要的网络通信,缓存结果等,可以提高应用性能。 - **版本...
- **新闻与RSS订阅**:说明如何在Liferay中集成新闻模块,并支持RSS订阅功能。 - **项目与维基**:介绍如何使用Liferay创建项目空间,支持团队协作;同时利用维基功能实现知识共享。 - **组织页面**:指导如何...
Liferay 示例项目通常会提供部署说明,指导开发者如何将项目打包并部署到Liferay服务器上。这可能涉及到Maven或Gradle构建工具,以及Liferay的部署目录结构。 8. **权限与角色管理** Liferay提供了强大的角色和...
**1.1 编写说明** 本开发文档旨在为初学者和经验丰富的开发者提供全面指南,涵盖Liferay 5.2.3与Tomcat6在Eclipse IDE中的集成、配置和开发流程。通过本文档,读者将能够迅速掌握Liferay门户框架的基本操作,从安装...