权限配置文件中:
<community-defaults>
<action-key>VIEW</action-key>
</community-defaults>
<guest-defaults>
<action-key>VIEW</action-key>
</guest-defaults>
访客和成员默认有了view权限,事实是否如此呢?回答:"不是".前几天客户反应新增加的产品访客看不见,只有把权限更新一下才能看得见,每一个都要更新无法接受,仔细跟进ProductCategoryPermission.contains(permissionChecker, categoryEntry, ActionKeys.VIEW)这个方法发现,PermissionCheckerImpl.hasPermission这个方法中先调用
Boolean value = PermissionCacheUtil.hasPermission(
user.getUserId(), groupId, name, primKey, actionId);先看一下内存文件里有没有记录(c:/{user}/liferay),如果你是第一次刚启动他返回肯定是null,然后是
value = new Boolean(
hasPermissionImpl(groupId, name, primKey, actionId));最关键的就是这个方法了,如果你是访客会调用hasGuestPermission,最终会调用PermissionServiceUtil.hasUserPermissions(
defaultUserId, guestGroup.getGroupId(), actionId, resourceIds,
bag);
代码部分就说到这,感觉太多了说不完,他操作流程是先找到resourcecode这个表,取得CODEID,然后再找resource这个表,取得RESOURCEID,最后才去找permission_这个表,找到permissionid后,再去用userId和permissionid去数据库里取得是否有权限,最后再把结果存到缓存文件里,以后再做这个权限验证他就不会走相同的路了,这一点是要注意的.
这样就出现了一个问题,产品可能有几万条,只是其中的几条不给访客看,每一个都要设置的话那就是要人命了,于是在ProductCategoryPermission.contains方法加上
try{
ResourceServiceUtil.getResource(
companyId, CategoryEntry.class.getName(), ResourceImpl.SCOPE_INDIVIDUAL, String.valueOf(category.getCategoryId()));
}catch (NoSuchResourceException nsre) {
return true;
}刚加的实例在resource这个表里是肯定没有的,getResource方法会报一个NoSuchResourceException ,报了就返回true,如果不报错就接着向下走,走liferay那一套,ResourceImpl.SCOPE_INDIVIDUAL这个值是设定范围的,在取resourcecode这个表会用到,有四个值可选,感觉好像只会用到SCOPE_INDIVIDUAL.
OK,到这里就结束了,再调用view验证时候,他就会先找这个是否存在表中,不存在就返回true.
分享到:
相关推荐
Liferay权限系统是一个复杂而精细的框架,它在不同版本中有所变化,但在Liferay 6.1.1和Liferay 7中保持了相似的结构。理解Liferay权限的关键在于掌握其基本概念,包括用户、用户组、角色、组织、站点以及团队。 1....
### Liferay权限文件说明 #### 一、概述 在Liferay平台中,权限管理是非常重要的一个环节,它确保了系统的安全性和数据的访问控制。本文档主要介绍的是`permissions.xml`文件及其相关配置,这对于理解如何在...
权限系统是Liferay中的核心组件之一,它允许管理员精确控制用户对平台内不同资源的访问和操作权限。在“Liferay权限文档”中,我们将深入探讨这一主题。 Liferay的权限系统基于角色(Roles)、组织(Organizations...
- **开发者指南**:官方提供了详细的开发者指南,其中包含了关于如何进行权限管理二次开发的信息。 - **安全性和扩展性**:二次开发可以帮助企业根据自身需求定制更高级的安全策略和权限模型,增强系统的安全性和...
在Liferay权限开发中,权限模型是核心概念之一。Liferay定义权限为针对特定资源的操作行为,这使得系统能够判断用户是否被授权执行特定动作。资源(Resource)是权限系统中的基本元素,它可以是Portlet、Page、...
《深入解析Liferay Portal创建权限机制》 Liferay Portal作为一款功能强大的企业级门户平台,其权限管理系统是其核心组成部分之一。本文将深入探讨Liferay Portal的权限创建机制,包括如何自定义权限系统,以及如何...
### Liferay权限管理详解 #### 一、企业管理与权限层级 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用对于用户权限控制的各种需求。本文档将详细解析Liferay内部的权限管理模型及其运作机制。 ##### ...
在Liferay Portal中,权限管理是系统的核心组成部分,它允许管理员根据不同的角色和用户组定制访问和操作的权限。Liferay的权限系统基于面向对象编程的继承概念,以确保资源的管理和访问控制既灵活又安全。 1. ...
### Liferay权限管理系统详解 #### 一、Liferay权限概述 Liferay的权限管理系统非常强大且灵活,能够满足企业级应用程序对于用户权限控制的各种需求。本节将详细介绍Liferay权限模型的基本组成部分及其工作原理。 ...
【Liferay系统权限分配】是Liferay Portal平台中一项核心功能,它允许管理员根据业务需求精细控制用户对系统资源的访问。Liferay的权限模型基于角色(Role)和资源(Resource),通过角色来分配和管理权限,使得权限...
Liferay Portal 是一款强大的企业级门户平台,其权限管理系统是其核心特性之一,用于实现对企业内部资源的精细控制。在Liferay中,权限管理涉及到企业管理、组织管理、地区管理、用户组管理和Portlet管理等多个层面...
在Liferay平台上进行权限开发是实现企业级应用安全性与灵活性的关键步骤。本文将详细解析Liferay权限系统的构建机制,以及如何通过代码实现自定义权限控制,确保应用的安全性和用户访问的合理性。 ### Liferay权限...
Liferay权限管理系统是Liferay门户平台的核心组成部分,用于控制用户对平台内容和功能的访问。这一系统基于严格的层次结构和角色分配,确保了资源的安全性和访问的灵活性。 1. **权限管理层次**: - **企业管理...
Liferay权限结构是Liferay门户平台中核心的安全机制,它负责控制用户对系统资源的访问和操作。本文档主要针对Liferay的权限系统进行了深入解析,旨在为初学者提供详尽的指导。 首先,我们要理解Liferay权限的定义。...
Liferay权限管理系统是Liferay Portal的核心组件之一,用于管理和控制平台内的访问控制和操作权限。在Liferay中,权限管理的基石是资源的概念,资源可以是portlet、功能按钮或其他可操作的对象。理解权限分配首先...
liferay的权限时序图,给大家共享一下,希望大家批评指正,沟通。
### Liferay Portal权限管理系统概述 Liferay Portal作为一款先进的企业级门户平台,其权限管理系统是保障信息安全、实现个性化用户体验的核心组件之一。本文旨在详细介绍Liferay Portal中的权限模型及其关键概念,...
介绍了Liferay的权限管理方面的知识。
### Liferay权限管理系统详解 Liferay是一款开源的企业级门户平台,提供了一系列强大的工具和服务,用于构建和管理企业网站、社区和应用程序。其中,权限管理是其核心功能之一,旨在帮助企业控制用户对不同资源的...
为了解决这个问题,我们需要了解 Liferay 在处理页面及 Portlet 权限时的工作原理。以下是从部分提供的内容中总结出的关键步骤: 1. **添加登录面板时的 SQL 语句解析**:当向系统中添加新的登录面板时,Liferay 的...