jbpm4.4整合自己的用户体系

来源:互联网 发布:一楼土木人淘宝 编辑:程序博客网 时间:2024/04/27 18:56

      虽然jbpm4中已经有用户体系,但实际项目中也会有自己的用户体系,我们肯定希望在jbpm4中用我们自己系统的用户体系,那这要怎样整呢,当然jbpm4已经提供了接口,我用一个简单的例子来说下。

      jbpm中有分组的概念,但我们系统中也许没有分组,不过角色总该有吧,那我就用角色来当jbpm中的分组好了,具体步骤如下。

      1、找到角色实体类,比如类名叫Role,我们让它实现org.jbpm.api.identity.Group接口,这个接口中有几个方法需要实现,其中getId方法我们返回Role的id,getName可以返回Role的name,getType返回"candidate",这里起到作用的也就getId方法,其余返回null也可以。

    
      2、新建类,比如类名叫UserSession,实现org.jbpm.pvm.internal.identity.spi.IdentitySession接口,这个接口也有一些方法需要实现,先不管怎么实现这些方法,有返回值的给它返回null,没有的就空着吧。然后找到public List<Group> findGroupsByUser(String userId)这个方法,这方法的作用是通过用户ID查询并返回角色列表,那我们就通过传入的用户ID查询到对应的Role呗,之前我们已经让Role实现org.jbpm.api.identity.Group接口了,所以将查到的Role加如List返回即可。

      3、编码工作就到这里,接下来在源文件夹新建文件命名为jbpm.identity.cfg.xml,内容如下:
[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <jbpm-configuration>  
  3.   <transaction-context>  
  4.      <object class="com.shine.jbpm.UserSession"/>  
  5.   </transaction-context>  
  6. </jbpm-configuration>  
其中class改成你的UserSession类。


      OK,现在在你的jpdl流程xml中的assignee和candidate-groups属性值写系统的用户ID和角色ID即可。
0 0
原创粉丝点击