`
hatlar
  • 浏览: 23442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

liferay权限探索

阅读更多

真不好意思,上次对liferay仅仅写了简略的概括.后来发现那么多人浏览,现在想来真是对不住大家.

我现在把权限开发的部分写出来,希望对大家有帮助.

权限开发有四个步骤:

          1、定义所有的资源和权限

          2、添加资源

          3、把资源和必须的许可联系起来

          4、返回资源前检查权限

其核心是资源的添加,资源的删除和权限的检查。

其中用的核心代码:

添加资源:使用的的类是ResourceLocalService,方法是addResource(String companyId,String usrId,String name,String primkey,boolean  portletActions,boolean addCommnunityPermission,boolean addGuestPermission)

   其中如果要能知道方法中各个变量的数据来源,那对整个权限开发有很大的帮助。首先是userId的来源,它是从PrincipalBean获得的,如果你看过PrincipalBean的源代码,你可以看到getUser()方法,所以你可以在ServiceImpl中获得userId,并且把它作为写入到addEntry()(可以自己定义方法名)中,添加资源的功能一般是在localServiceImpl中实现的,而companyId的获得经过一系列的过程,可以用一下数学的表达方式来表示:

User user = userPersistence.findByPrimaryKey(userId);其中userId已经在上一级获得

companyId=user.getCompanyId();

userId=user.getUserId();(不知道得到的userId和作为参数引入的userId是否一样,不过通过user获得userId作为addResource()的参数肯定不错)。

而另一个重要参数groupId的获得要比这个复杂些。

long groupId=PortalUtil.getPortletGroupId(piId)

pild=layout.getPild()

layout=themeDisplay.getLayout()

themeDisplay=(ThemeDisplay)request.getAttribute(WebKey.THEME_DISPLAY)

其中layout,themeDisplay,plid是在ation中获得,并把plid作为参数传递给serviceUtil的addEntry()方法 .

通过一级一级的传递,在localService中通过PortalUtil.getPortletGroupId(plid)获得,然后作为addResource的参数,实现把资源添加到数据中。其中companyId也是在这个阶段获得的。

另外portalAction,addCommunityPermission,addGuestPermission的数值是自己定义的,不是从系统中获得的。

删除资源deleteResource(
   CompanyId(), name,  ResourceImpl.SCOPE_INDIVIDUAL,EntryId());

其中companyId和添加资源用到的companyId是一样的。

 权限检查

permissionChecker.hasPermission(groupId,name,PrimaryKey(), actionId);

其中groupId和添加资源中的groupId是一样的,name是实体类的类名,primaryKey是实体的关键字,actionI对资源的操作。

先写这么多

 

分享到:
评论
1 楼 longwang 2008-07-24  
PrimaryKey()是怎么获得的?

相关推荐

    liferay快速入门quickstart

    ### Liferay快速入门知识点详解 #### 一、Liferay Portal简介与快速启动 ...无论是对于希望快速搭建企业门户的用户,还是想要深入探索Liferay开发的开发者,这份快速入门指南都是一个不可或缺的资源。

    liferay 资料

    - Liferay 提供了完整的用户管理和权限控制,支持多租户架构,使得多个组织可以在同一平台上独立运作。 - 它的界面设计是基于 Web 服务的,允许通过 Ajax 技术实现动态交互。 2. **portlet 开发**: - Portlet ...

    LIFERAY的ppt课件

    7. **集成与API**:探索Liferay的API和Service Builder,了解如何与其他系统进行集成。 8. **扩展与插件**:了解Marketplace中的可用插件,以及如何开发自己的插件来扩展Liferay的功能。 **最佳实践** 在使用...

    liferay相关的代码

    在IT行业中,Liferay是一款广泛使用的开源企业级门户平台,它提供了一个强大的框架来构建、管理和部署...通过不断的探索和学习,我们可以充分利用Liferay的灵活性和强大功能,为企业的数字化转型提供坚实的技术支撑。

    liferay一个简单的portlet

    **Liferay 简单Portlet详解** Liferay Portal 是一款开源的企业级门户平台,它提供了丰富的功能,如用户...通过实践和不断探索,开发者可以充分利用Liferay提供的各种功能,构建出满足业务需求的定制化Portlet应用。

    Liferay 使用手册

    1. **控制台管理**:通过 Liferay 控制台,管理员可以管理用户、角色、权限、站点、portlet等。 2. **性能优化**:调整缓存策略、数据库索引、服务器配置,以提高系统性能。 3. **安全设置**:配置 SSL、防火墙规则...

    liferay Portal 求助

    它提供了强大的身份管理和权限控制,使得不同角色的用户可以访问不同的内容和服务。此外,Liferay支持多种内容管理,如文档库、博客、论坛等,便于企业构建内部协作平台。它还具备高度可扩展性,可以通过插件和模块...

    liferay学习笔记1

    由于提供的部分内容包含大量无法识别的乱码,我们将主要依据标题、描述和标签来生成与Liferay相关的知识点。...无论是初学者还是有经验的开发者,都有大量的资源和社区支持可以帮助你快速上手并深入探索Liferay的世界。

    Liferay_6.1开发学习

    7. **权限和安全**:Liferay的权限管理系统非常强大,理解用户角色、组和资源权限的管理对于构建安全的门户至关重要。 通过深入学习以上知识点,开发者可以充分利用Liferay 6.1的强大功能,构建出满足各种业务需求...

    liferay struts2 demo

    总之,"Liferay Struts2 Demo"是一个宝贵的教育资源,对于希望深入理解和实践Liferay与Struts2整合的开发者来说,它是探索这一技术领域的重要起点。通过实践这个示例,开发者可以更好地理解和运用这两个强大的工具,...

    Liferay_学习笔记

    【Liferay 学习笔记】 Liferay 是一款开源的企业级门户平台,用于构建和管理复杂的Web应用程序。...在实践中,不断探索和理解Liferay的高级功能和配置,能够帮助我们构建更高效、更个性化的Web应用平台。

    Liferay.Portal.Enterprise.Intranets.April.2008.pdf

    6. **工作流与协作**:探索Liferay的工作流引擎,如何创建自定义工作流,以及利用讨论论坛、任务分配等功能促进团队协作。 7. **集成与API**:学习Liferay的API和Web服务接口,了解如何与其他系统(如CRM、ERP等)...

    liferay开发文档

    ### Liferay开发知识点详解 #### 一、简介 **Liferay**是一款开源的企业级门户平台,它基于Java...通过对这些知识点的学习和实践,开发者可以更快地掌握Liferay开发的核心技能,并能够在此基础上进一步探索和创新。

    转载:liferay-4-administration-guide.pdf

    通过以上步骤,用户可以成功部署Liferay,开启企业级门户的探索之旅。Liferay凭借其丰富的特性和高度可定制性,成为众多企业和组织的首选门户解决方案。无论是提升用户体验,还是优化开发流程,Liferay都能提供全面...

    Portlet 案例项目

    它们通常通过门户框架(如Liferay)来管理,提供一种统一的用户界面和权限控制。 Liferay Portal是一个功能强大的企业级门户解决方案,它支持多种portlet标准,并提供丰富的API和工具,简化portlet的开发过程。在...

    基于JAVA的源代码搜索引擎架构实现.pdf

    2. **权限管理**:Liferay内置了强大的权限管理机制,有助于保护敏感信息。 #### 实现细节 ##### 爬虫模块 爬虫模块负责从Web和本地系统中抓取源代码文件。为了提高效率,Hicode采用了多线程技术实现并发抓取。...

    portal 开发教程

    常见的Portal框架有IBM WebSphere Portal、Liferay Portal、Jasig uPortal等。安装过程通常包括下载软件包、配置服务器环境、安装数据库、部署应用程序等步骤。每个框架的安装方法都有所不同,但都需要遵循官方文档...

    struts2.0.14_apps

    1. **struts2-portlet-2.0.14.war**:这是一个portlet应用程序的例子,portlet是可以在portlet容器(如Liferay或WebSphere Portal)中运行的独立组件。在Struts 2框架下,portlet可以利用Struts 2的拦截器、结果类型...

Global site tag (gtag.js) - Google Analytics