扩展activiti使用自己的用户表和群组表
cookqq ›博客列表 ›activiti

扩展activiti使用自己的用户表和群组表

2015-03-27 17:48:45.0|分类: activiti|浏览量: 3895

摘要: 1、自定义的Activiti用户组管理器,主要重写对用户群组的增删改查等操作。import java...

1、自定义的Activiti用户组管理器,主要重写对用户群组的增删改查等操作。

import java.util.ArrayList;
import java.util.List;
 
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
 
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.GroupQuery;
import org.activiti.engine.impl.GroupQueryImpl;
import org.activiti.engine.impl.Page;
import org.activiti.engine.impl.persistence.entity.GroupEntity;
import org.activiti.engine.impl.persistence.entity.GroupManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
 
/**
 * 自定义的Activiti用户组管理器
 * 
 */
public class CustomGroupManager extends GroupManager {
    private static final Log logger = LogFactory
            .getLog(CustomGroupManager.class);
 
    @Override
    public GroupQuery createNewGroupQuery() {
        // TODO Auto-generated method stub
        return super.createNewGroupQuery();
    }
 
    @Override
    public List findGroupByQueryCriteria(GroupQueryImpl query, Page page) {
        // TODO Auto-generated method stub
        return super.findGroupByQueryCriteria(query, page);
    }
 
    @Override
    public long findGroupCountByQueryCriteria(GroupQueryImpl query) {
        // TODO Auto-generated method stub
        return super.findGroupCountByQueryCriteria(query);
    }
 
    @Override
    public GroupEntity findGroupById(String groupId) {
        // TODO Auto-generated method stub
        return super.findGroupById(groupId);
    }
 
    @Override
    public List findGroupsByUser(String userId) {
        // TODO Auto-generated method stub
        return super.findGroupsByUser(userId);
    }
 
    @Override
    public List findPotentialStarterUsers(String proceDefId) {
        return super.findPotentialStarterUsers(proceDefId);
    }
 
 
     
}

注意:如果想使用自己定义的用户组表,请重新这个findGroupById(final String groupCode)和findGroupsByUser(final String userCode),这两个方法是activiti查询的用户组的方法。


2、自定义的Activiti用户组会话工厂,返回类型不要变还是GroupManager,主要是覆盖系统默认添加的用户群组工厂。

import org.activiti.engine.impl.interceptor.Session;
import org.activiti.engine.impl.interceptor.SessionFactory;
import org.activiti.engine.impl.persistence.entity.GroupManager;
import org.springframework.beans.factory.annotation.Autowired;
 
/**
 * 自定义的Activiti用户组会话工厂
 */
public class CustomGroupManagerFactory implements SessionFactory {
    private GroupManager groupManager;
 
    @Autowired
    public void setGroupManager(GroupManager groupManager) {
        this.groupManager = groupManager;
    }
 
    public Class getSessionType() {
        // 返回原始的GroupManager类型
        return GroupManager.class;
    }
 
    public Session openSession() {
        // 返回自定义的GroupManager实例
        return groupManager;
    }
}

3、自定义的Activiti用户管理器, 主要重写对用户的增删改查等操作。

import java.util.List;
 
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;
import org.activiti.engine.impl.Page;
import org.activiti.engine.impl.UserQueryImpl;
import org.activiti.engine.impl.persistence.entity.IdentityInfoEntity;
import org.activiti.engine.impl.persistence.entity.UserEntity;
import org.activiti.engine.impl.persistence.entity.UserManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
/**
 * 自定义的Activiti用户管理器
 */
public class CustomUserManager extends UserManager {
    private static final Log logger = LogFactory
            .getLog(CustomUserManager.class);
 
    @Override
    public UserEntity findUserById(String userId) {
        return super.findUserById(userId);
    }
 
    @Override
    public List findUserByQueryCriteria(UserQueryImpl query, Page page) {
        // TODO Auto-generated method stub
        return super.findUserByQueryCriteria(query, page);
    }
 
    @Override
    public long findUserCountByQueryCriteria(UserQueryImpl query) {
        // TODO Auto-generated method stub
        return super.findUserCountByQueryCriteria(query);
    }
 
    @Override
    public List findGroupsByUser(String userId) {
        // TODO Auto-generated method stub
        return super.findGroupsByUser(userId);
    }
 
    @Override
    public IdentityInfoEntity findUserInfoByUserIdAndKey(String userId,
            String key) {
        // TODO Auto-generated method stub
        return super.findUserInfoByUserIdAndKey(userId, key);
    }
 
    @Override
    public List findUserInfoKeysByUserIdAndType(String userId,
            String type) {
        // TODO Auto-generated method stub
        return super.findUserInfoKeysByUserIdAndType(userId, type);
    }
 
    @Override
    public Boolean checkPassword(String userId, String password) {
        // TODO Auto-generated method stub
        return super.checkPassword(userId, password);
    }
 
    @Override
    public List findPotentialStarterUsers(String proceDefId) {
        // TODO Auto-generated method stub
        return super.findPotentialStarterUsers(proceDefId);
    }
     
}


注意:如果想使用自己定义的用户表,请重新这个findUserById(final String userCode)和findGroupsByUser(final String userCode),这两个方法是activiti查询的用户的方法

4、自定义的Activiti用户会话工厂, ,返回类型不要变还是 UserManager,主要是覆盖系统默认添加的用户工厂。

import org.activiti.engine.impl.interceptor.Session;
import org.activiti.engine.impl.interceptor.SessionFactory;
import org.activiti.engine.impl.persistence.entity.UserManager;
import org.springframework.beans.factory.annotation.Autowired;
 
/**
 * 自定义的Activiti用户会话工厂
 */
public class CustomUserManagerFactory implements SessionFactory {
    private UserManager userManager;
 
    @Autowired
    public void setUserManager(UserManager userManager) {
        this.userManager = userManager;
    }
 
    public Class getSessionType() {
        // 返回原始的UserManager类型
        return UserManager.class;
    }
 
    public Session openSession() {
        // 返回自定义的UserManager实例
        return userManager;
    }
}

5、activiti.cfg.xml相应的配置:

             
                          
              
                                    
                                                                                                  
                                                                
              
         


一键分享文章

分类列表

  • • struts源码分析
  • • flink
  • • struts
  • • redis
  • • kafka
  • • ubuntu
  • • zookeeper
  • • hadoop
  • • activiti
  • • linux
  • • 成长
  • • NIO
  • • 关键词提取
  • • mysql
  • • android studio
  • • zabbix
  • • 云计算
  • • mahout
  • • jmeter
  • • hive
  • • ActiveMQ
  • • lucene
  • • MongoDB
  • • netty
  • • flume
  • • 我遇到的问题
  • • GRUB
  • • nginx
  • • 大家好的文章
  • • android
  • • tomcat
  • • Python
  • • luke
  • • android源码编译
  • • 安全
  • • MPAndroidChart
  • • swing
  • • POI
  • • powerdesigner
  • • jquery
  • • html
  • • java
  • • eclipse
  • • shell
  • • jvm
  • • highcharts
  • • 设计模式
  • • 列式数据库
  • • spring cloud
  • • docker+node.js+zookeeper构建微服务
版权所有 cookqq 感谢访问 支持开源 京ICP备15030920号
CopyRight 2015-2018 cookqq.com All Right Reserved.