保护你的应用程序
by Si Chen
OFBIZ可以在用户接口层或业务逻辑层实现安全性保障。在用户接口层,整个WEB应用程序可以被一次性保护,控制器中单个的请求可以被保护,并且单个的页面可以需要特定的权限。在业务逻辑层,每一个服务可以需要特定的权限。
分配权限
有一个名叫SecurityPermission的实体描述了粒状的安全权限,这些权限可以用于特定的页面或特定的服务。SecurityPermission是一个两部分的字符串,由”_”分开,第一部分指定了应用程序,第二部分指定了允许的操作。这样的话你就有可能会拥有像"ORDERMGR_CREATE"的权限,它意味着拥有该权限的用户可以在订单管理应用程序里创建信息。有一些权限以_ADMIN结尾,比如ORDERMGR_ADMIN,这些权限自动拥有对应用程序的所有操作权限。
许多单个的安全权限通过实体SecurityPermissionGroup可以被组织到一起。例如,你可以为特定客户创建一组权限,指定谁可以察看客户信息,进入订单,但是不能创建购买订单或者访问内部产品,账户,或者薪水信息和其它功能。
每一个SecurityPermissionGroup都和一个UserLogin关联。一个Party(或许是一个人,或许是一个组织)可以被关联多个UserLogins。这样的话一个人就可以有多个Login,一些Login拥有的权限多一些,一些Login拥有的权限少一些,这样对于大客户是很有用的。这可以在Party Manager的安全tab中操作。
保护WEB应用程序
在ofbiz-component.xml文件中定义web应用程序位置处(<web app>标签处),你可以使用<base-tag>标签来指定整个web应用程序需要的权限。仅使用安全权限字符串的第一部分,即应用程序的名字。例如,如果你使用base-permission="ORDERMGR",则web应用程序会自动需要ORDERMGR_VIEW或ORDERMGR_ADMIN。
在许多应用程序中,你会看到base-permission="OFBTOOLS, ORDERMGR",这句话表示了权限OFBTOOLS_VIEW和ORDERMGR_VIEW。base -permission属性允许指定一系列的权限,并且它们必须是真实的同时用户是可以获得访问的。OFBTOOLS_VIEW和 ORDERMGR_VIEW的含义是:OFBTOOLS_VIEW控制了访问对于web应用程序的访问,而ORDERMGR_VIEW可用于控制任何应用程序中订单信息的访问,包括基于web的订单管理,POS,CRM模块或其它应用程序。
在web应用程序的controller.xml中,我们可以用<security>标签为单个的request指定安全性需求。你可以使用<security>标签来实现页面的安全性,可以通过使用https,或者需要一个用户login来访问页面(尽管没有为一个用户login指定特殊的权限)。你也可以通过指定无法从浏览器中定向request来隐藏request,这对于收到了一个request链中的一个不能被单独调用的request的情况是很有效的。
最后,在页面本身你可以使用request,这在页面上是不显示的除非用户login有一定的安全性权限。OFBIZ在一个.bsh文件中使用UserLogin和一个 "security" 对象来检查这些权限。如果你使用widget你还可以使用如下的标签:
引用
<condition>
<if-has-permission>
<check-permission>
<widgets>
<fail-widgets>
OFBIZ允许我们直接在widget里核查权限而不是使用FTL,并设置了一个通过核查时的widget和没有通过核查的widget.
安全性API
The most popular security API methods are: 以下是最常用的安全性API方法:
* Security.hasPermission -核查该用户是否具备一个特定的权限。
* Security.hasEntityPermission - 允许你指定权限字符串,字符串有两部分,如"ORDERMGR", "_CREATE",所以,如果用户有"ORDERMGR_CREATE" 或 "ORDERMGR_ADMIN"权限,它将会通过。
* ServiceUtil.getPartyIdCheckSecurity -核查是否用户具备指定的权限,或者实际上是执行自己的操作。只要是任何情况中的一种,该方法都会返回partyId,意味着用户有权限。
* Security.hasRolePermission -核查是否用户具备指定的权限,以及是否用户关联一个角色中特殊的实体。意思是如果你给用户一个权限,比如ORDER_ROLE_VIEW,并且指定他通过实体OrderRole和一个订单关联,这样的话那个用户就有权限察看特定的订单。相同的用户将不会拥有权限查看订单,如果他没有一个OrderRole实体记录的话。
The minilang simple methods also have permission checking tags <if-has-permission> and <check-permission>. Minilang脚本也有可以进行权限核查的标签:<if-has-permission> 和<check-permission>。
安全性服务
你可以定义是否一个服务需要一个用户login。此外,你可以使用<security>标签来定义什么权限是需要的。在服务内部,你可以为自己核查权限。有一个安全性相关的方法可以用于核查是否UserLogin拥有某种权限,或者是否用户为自己执行一个任务(比如为自己创建订单)。
你也可以在services.xml里是用<required-permissions> 和<check-permission>标签定义你的权限,
http://blog.sina.com.cn/s/blog_4a4820f9010008vi.html
分享到:
相关推荐
5. **安全性与权限**:系统权限设置、用户管理以及数据安全策略。 6. **升级与维护**:Opentaps的版本更新和维护策略,以及如何平滑地进行系统升级。 综上所述,"ofbiz_cn.doc"文档对于想从事Ofbiz或Opentaps二次...
作为Java技术栈的重要组成部分,OFBiz提供了包括供应链管理(SCM)、客户关系管理(CRM)、产品内容管理(PCM)、财务管理(FI)等在内的多个功能模块。这个“Ofbiz技术文档”是开发者和系统管理员深入了解和使用...
在OFBiz中,过滤器用于在请求到达实际处理业务的组件之前进行安全检查、数据验证等操作。 2. **控制器(Controller)**:在OFBiz中,控制器负责调度请求,根据配置文件中的映射规则将请求路由到相应的处理器。...
1. **核心概念**:OFBiz的核心组件包括实体引擎、工作流引擎、事件驱动模型、服务引擎和安全模型。这些组件共同构成了一个灵活且可扩展的框架,使得开发者可以快速构建企业级应用。 2. **安装与配置**:文档可能...
- **系统配置**:讲解如何配置 OFBiz 的核心设置,如数据库连接、安全性选项等。 2. **开发指南**: - **模块开发**:指导用户如何创建自定义模块以满足特定业务需求。 - **服务端脚本编写**:教授如何使用 ...
5. **文档资料**:除了代码和演示数据,压缩包可能还包含OfBiz的官方文档,包括用户手册、开发者指南和技术参考,这些都是学习OfBiz的重要资源。 6. **源码分析**:对于开发人员而言,理解OfBiz的源码结构和设计...
Apache Ofbiz是一个开源的企业应用框架,它为构建复杂的业务应用程序...记住,学习Ofbiz不仅仅是掌握技术,更重要的是理解它如何适应和解决实际业务场景的需求。通过不断的实践和学习,你将成为一名熟练的Ofbiz开发者。
总之,"Ofbiz数据库全模型"是一个宝贵的资源,对于学习、开发和维护Ofbiz应用的人来说,它提供了对系统数据结构的全面了解,有助于提升工作效率并确保项目的稳定性和扩展性。无论是初学者还是经验丰富的Ofbiz开发者...
OFBiz-技术文档.rar OFBiz API中文版.rar Apache OFBiz Cookbook Sep 2010.rar Opentaps widget使用说明.rar OFBiz.Development.2008.rar Groovy中文教程.rar freemarker中文手册.rar ofbiz10.04表结构.rar ...
OFBiz的数据结构设计也考虑到了安全性。通过角色和权限的设置,可以限制不同用户对数据的访问和操作。这种细粒度的权限控制有助于保护敏感信息,防止非法访问。 总结,OFBiz的数据结构设计是其强大功能的基础。通过...
Ofbiz 安装与配置指南 Ofbiz 是一个基于 Java 的开源企业级电子商务平台,提供了强大的电子商务解决方案。为了帮助初学者快速上手 Ofbiz,我们将详细介绍 Ofbiz 的安装与配置过程。 环境搭建 在开始安装 Ofbiz ...
本指南深入浅出地讲解了如何利用OFBIZ进行开发,帮助开发者理解和掌握其核心概念和技术。 在OFBIZ的开发过程中,首先你需要了解的是OFBIZ的基础架构。OFBIZ基于服务导向架构(SOA),采用模块化设计,使得系统扩展...
在信息技术领域,OFBiz(Open For Business Project)是一个开源的企业级应用框架,主要用于构建复杂的电子商务系统。OFBiz 提供了一整套全面的业务组件,涵盖了从供应链管理到客户关系管理的诸多方面。本文将深入...
OFBIZ提供了安全控制机制,如角色权限管理、会话管理,确保系统的安全性。 总结来说,OFBIZ 10.04的组件开发涉及多个方面,从组件结构、MVC模式到具体的服务和事件处理,都需要开发者有扎实的Java基础和对OFBIZ框架...
ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...
OFBiz 应用开发需要注意的一些问题,例如,需求分析的重要性、设计的合理性、实现的可维护性、测试的充分性等。OFBiz 应用开发的正确性将直接影响到应用程序的质量和稳定性。 OFBiz 开发手册旨在为开发者提供一个...
例如,过滤器(Context Security Filter)作为控制器的一部分,按照Servlet API 2.3标准,能够在请求到达servlet之前进行预处理,可以检查、修改请求和响应,增强了安全性。 ofbiz通过这种MVC架构,实现了高效且...
技术文档 5 第一部分、ofbiz表现 5 一、理解MVC模式 5 1、MVC理论描述 5 2、系统设计 6 3、OFBiz中MVC模式体现 7 二、JPublish合成表示层 8 1、经典的合成器--JPublish 8 2、template + script 9 3、JPublish和MVC 9...
过滤器(Filter)在OFBIZ中扮演重要角色,它在请求到达Servlet之前进行预处理,可以用来实现安全性控制、数据校验等功能,进一步提升了MVC模式的应用效果。 3、OFBiz中的MVC模式体现 - 控制器(Controller):在...
标题中的"ofbiz10.04表结构"指的是OFBiz 10.04版本的数据模型设计,这是企业级开源应用框架OFBiz的一个重要组成部分。OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖...