WEB开发网
开发学院软件开发Java 使用JBoss jBPM实现流程访问和执行的授权 阅读

使用JBoss jBPM实现流程访问和执行的授权

 2010-05-11 00:00:00 来源:WEB开发网   
核心提示:当今常见的BPM趋势是集中化整个公司或公司内大部门的BPM执行,这意味着,使用JBoss jBPM实现流程访问和执行的授权,单个BPM服务器(集群)运行着整个公司的许多流程定义,这种方式的挑战在于,考虑现有用户的证书,这包括部署和流程定义查询、流程实例查询,虽然BPM引擎(包括jBPM)提供了对于任务访问的授权,但它们

当今常见的BPM趋势是集中化整个公司或公司内大部门的BPM执行。这意味着,单个BPM服务器(集群)运行着整个公司的许多流程定义。这种方式的挑战在于,虽然BPM引擎(包括jBPM)提供了对于任务访问的授权,但它们一般都不支持这些功能的授权:流程定义的查看和删除,流程实例的启动、结束、查看和删除等。在这篇文章中,我们将描述如何对jBPM引擎进行扩展 (基于jBPM 4.3)来实现这一功能。

整体实现方法

整个实现方式相当直接了当——对于每个流程定义引入一组可以授权的用户/用户组(类似任务定义),作用于定义、实例和给定流程的历史。此外,我们还想对给定的用户/用户组支持多重授权级别——目前我们打算引入2个角色:“starter”和“user”。这里的“starter”是允许对流程定义/实例 /历史进行任何操作的角色,而“user”角色的权限仅限于查询流程/历史。

这种方式的实现需要对jBPM进行以下改造:

流程定义

给流程定义增加流程访问权限

流程部署

扩展当前的流程部署器,增加流程授权定义的解析和流程访问列表的生成

引入额外的类/数据库表,存放每个流程定义的访问权限

流程执行(Execution)

引入已授权命令(authorized command)——要求用户经过授权才能执行的命令

修改现有的jBPM中我们期望基于当前用户证书进行授权的部分。这包括启动、结束和删除流程实例,以及删除部署定义。

修改现有的jBPM查询,考虑现有用户的证书。这包括部署和流程定义查询、流程实例查询,以及历史流程实例、活动和细节的查询。

1 2 3 4 5 6  下一页

Tags:使用 JBoss jBPM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接