`
jiasudu1649
  • 浏览: 711240 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

OFBIZ安全性技术(翻译)

阅读更多
保护你的应用程序


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
分享到:
评论
1 楼 一剪梅 2017-06-23  
关于您对于 hasRolePermission 用法的解释, 我有一个小小的疑问: 只建一个订单查看权限, 然后用户查看自己的订单,有订单的用户就能查看到订单, 没有订单的用户就查看不到订单, 这样不行吗?

相关推荐

    ofbiz中文技术文档

    搞ofbiz或者opentaps二次开发的朋友可以看看,中文技术文档,比较详细的

    Ofbiz技术文档

    经典的ofbiz开发技术文档!本书详细介绍了ofbiz的应用架构、部署及如何开发和配置自己的应用。ofbiz文档不多本书绝对是不可多得的ofbiz技术文档!!!

    OFBIZ快速入门OFBIZ快速入门

    OFBIZ快速入门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 的核心技术在于 Entity Engine,其他的组件基本都 是基于它的。简单来说 Entity Engine 的主要功能是将数据库表创建、对象与数据表的映射、对象的查询等做...

    ofbiz框架(文档)全

    关于OFBIZ很全的介绍包括他的事物与JMS。。。

    OFBiz 教程

    ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...

    ofbiz综合技术文档

    技术文档 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...

    关于OFBIZ的资料

    关于ofbiz的资料,很多,用ofbiz技术的朋友们赶快下载吧

    ofbiz10.04表结构(包含自己翻译)

    ofbiz10.04表结构(包含自己翻译),以前发现网上很难找,自己分享下

    ofbiz学习笔记(自学整理)

    自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,适合初学者,可以下个看看

    OFBIZ集成Activiti流程

    OFBiz集成Spring和Activiti,详细设计说明书。ofbiz版本12.04

    ofbiz 教程_配置ofbiz

    ofbiz的获取与部署,主要用到了gradle 和 eclipse,注意:cmd部署时,需要一个较好的网络环境以下载gradle

    ofbiz jar file2

    ofbiz jar file, some jars for ofbiz

    OFBiz-技术文档

    OFBiz开发者装备系列:0007

    ofbiz 数据模型 中文手册

    ofbiz 数据模型 中文手册 ofbiz 核心的数据模型 表结构和字段翻译

    ofbiz数据结构设计

    ofbiz数据结构

    ofbiz开发框架建表语句 ofbiz_sql

    ofbiz sql 表结构

    浅谈OFBIZ.doc

    浅谈OFBIZ.doc浅谈OFBIZ.doc浅谈OFBIZ.doc浅谈OFBIZ.doc浅谈OFBIZ.doc

    OFBIZ开发指南 英文2

    OFBIZ开发指南 英文2OFBIZ开发指南 英文2OFBIZ开发指南 英文2

Global site tag (gtag.js) - Google Analytics