使用JBoss jBPM实现流程访问和执行的授权
2010-05-11 00:00:00 来源:WEB开发网除了以上更改,我们还想扩展流程实例查询,好让用户可以通过指定某些流程变量的值来缩小查询结果。这种搜索的一个常见情况就是查询“由我启动的”流程。为 了确保这种查询总是可用,我们更改了启动流程实例命令的实现,显式地把当前用户ID加到了流程变量值的集合中。
最后,为了支持多种用户认证方法,我们实现了一个自定义的身份会话,它支持用程序来设置和访问当前用户的证书。其目的在于,把用户证书(ID和参与的组) 的获得和jBPM运行时对这种信息的使用分离开来。
我们的实现利用了非常强大和灵活的jBPM 4的配置机制,它让我们可以:
通过扩展现有jBPM类,最小化了自定义代码的数量,只实现我们扩展所需的额外功能
将我们的扩展实现成可以与jBPM 4类库一起使用的单独jar包,无需对现有库进行任何改变。
在深入我们的实现细节之前,我们首先要讨论一下我们大量使用的jBPM 4的配置。
jBPM 4的配置机制
jBPM的基础是流程虚拟机(PVM),它建立在自定义的依赖注入实现之上。依赖注入由非常强大的、基于XML的配置机制控制,这种机制用于创建标签和预定义接口相关的特定实现之间的绑定 (binding)。
这种机制的核心是jbpm.wire.bindings.xml文件,它描述了jBPM PVM的主要组件,包括:
基本类型
对象及引用
环境引用
Hibernate绑定
会话
服 务
部署器
拦截器
等
该文件是jBPM分发包的一部分。如果用户想增加自己的绑定(binding),他可以创建jbpm.user.wire.bindings.xml描述 它们,而不用修改jbpm.wire.bindings.xml文件。
这两个文件会被jBPM PVM在启动时读入并解析,为定义在jbpm.cfg.xml中的基础PVM执行(execution)配置而服务。jbpm.cfg.xml一般会包含 多个部分,描述了PVM执行的特定组件的配置。
更多精彩
赞助商链接