6

我有一个具有用户/组功能和现有用户/组数据的 web 应用程序。

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

我是不是该:

  1. 重构我现有的 webapp,以重用来自 Activiti 的用户/组数据,或者
  2. 编写一些适配器代码,让 Activiti 重用我现有数据库中的用户/组数据?也许,另一个实现RepositoryServiceIdentityService等,然后重新编译?它似乎RepositionServiceImpl在 Activiti 源代码中是硬编码的,并且setRepositionService()ProcessEngine.

我无法重命名现有的数据库表,因为还有其他一些应用程序在使用它们。

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

4

2 回答 2

8

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

  1. 扩展GroupManagerand UserManager(来自 package 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行)

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

于 2013-01-21T17:06:16.857 回答
2

您可以检查 Lim Chee Kin 代码以将 activiti 与 spring security https://github.com/limcheekin/activiti-spring-security集成,也许您可​​以通过 spring security 重用您的用户/组数据,这样您就可以重用他的代码。

于 2013-01-21T11:31:50.827 回答