如何重用Activiti中的现有用户/组数据?

时间:2013-01-21 09:02:20

标签: integration activiti

我有一个webapp,它具有用户/组功能和现有的用户/组数据。

我想使用Activiti流程引擎,但似乎Activiti管理用户/组信息本身。

我应该:

  1. 重构我现有的webapp,重用Activiti中的用户/组数据,或
  2. 编写一些适配器代码,以使Activiti在现有数据库中重用用户/组数据?也许,RepositoryServiceIdentityService等的另一个细节,并重新编译?似乎RepositionServiceImpl在Activiti来源中是硬编码的,setRepositionService()中没有ProcessEngine方法。
  3. 我无法重命名现有的db表,因为还有其他一些应用程序使用它们。

    我已阅读用户指南,但未找到有关如何将Activiti与现有应用集成的任何信息。

2 个答案:

答案 0 :(得分:8)

我不知道您目前使用的是哪个版本,但我在5.5版中成功使用了您的第二个选项,覆盖了一些Activiti类:

  1. 扩展GroupManagerUserManager(来自包org.activiti.engine.impl.persistence.entity),并使用所需的DAO / EntityManager /指向您的数据库的任何方法实现您需要的方法。代码在此处:GroupManager / UserManager

  2. 为群组和用户实施org.activiti.engine.impl.interceptor.SessionFactory.SessionFactory。在此处查看代码:ActivitiGroupManagerFactory / ActivitiUserManagerFactory

  3. 最后,在您的活动配置中,您必须设置新的SessionFactory类。我使用spring,所以有我的activiti-config bean代码:activiti-config.xml(检查第14行)

  4. 希望这在某种程度上有所帮助:)

答案 1 :(得分:2)

您可以查看Lim Chee Kin代码以将activiti与spring security https://github.com/limcheekin/activiti-spring-security集成在一起,也许您可​​以重复使用Spring安全性的用户/组数据,这样您就可以重用他的代码。