搭建Activiti-5.21.0工作流服务器

1、直接部署

docker run --name='activiti' -it --rm -p 8080:8080 -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker eternnoir/activiti:latest

注:此时使用内存中的H2数据库。

2、Tomcat服务器管理

http://localhost:8080/
username: admin
password: admin

3、访问activiti

http://localhost:8080/activiti-explorer/
username: kermit
password: kermit

4、连接外部数据库

4.1 连接mysql容器

docker pull sameersbn/mysql
mkdir -p /opt/mysql/data
docker run --name=mysql -d -e 'DB_NAME=activiti_production' -e 'DB_USER=activiti' -e 'DB_PASS=password' -v /opt/mysql/data:/var/lib/mysql sameersbn/mysql

注:此镜像的mysql数据库版本为mysql-5.5.54

docker run --name=activiti -d --net=host --link mysql:mysql eternnoir/activiti

tomcat版本:8.0.38
tomcat目录:/opt/tomcat
activiti版本:5.21.0
activiti目录:/opt/activiti

4.2 连接mysql

创建数据库及授权用户访问:

CREATE USER 'activiti'@'%.%.%.%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `activiti_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON `activiti_production`.* TO 'activiti'@'%.%.%.%';

运行容器:

docker run --name=activiti -d --net=host -e 'DB_HOST=localhost' -e 'DB_NAME=activiti_production' -e 'DB_USER=activiti' -e 'DB_PASS=password' eternnoir/activiti

activiti连接数据库配置文件路径:

/opt/tomcat/webapps/activiti-explorer/WEB-INF/classes/db.properties
/opt/tomcat/webapps/activiti-rest/WEB-INF/classes/db.properties

修改内容如下:

db=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/activiti_production?useUnicode=true&characterEncoding=utf-8
jdbc.username=activiti
jdbc.password=password

重启容器使配置生效。

5、可用配置参数

TOMCAT_ADMIN_USER: Tomcat admin user name. Defaults to admin.
TOMCAT_ADMIN_PASSWORD: Tomcat admin user password. Defaults to admin.
DB_HOST: The database server hostname. Defaults to \``.
DB_PORT: The database server port. Defaults to 3306.
DB_NAME: The database database name. Defaults to \``.
DB_USER: The database database user. Defaults to \``.
DB_PASS: The database database password. Defaults to \``.

6、Eclipse插件

Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/
安装使用手册:https://www.activiti.org/userguide/index.html#activitiDesigner

7、集成LDAP

7.1 用法

要想在你的项目中集成LDAP,在pom.xml中添加如下依赖:

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-ldap</artifactId>
    <version>latest.version</version>
</dependency>

7.2 用例

集成LDAP目前有两大用例:

通过IdentityService进行认证。比如,使用Activiti Explorer 通过LDAP登录。
获得用户的组。这在查询用户可以看到哪些任务时非常重要。(比如,任务分配给一个候选组)。

7.3 示例

<bean id="processEngineConfiguration" class="...SomeProcessEngineConfigurationClass">
    ...
    ...
    <property name="configurators">
      <list>
          <bean class="org.activiti.ldap.LDAPConfigurator">

            <!-- Server connection params -->
            <property name="server" value="ldap://localhost" />
            <property name="port" value="33389" />
            <property name="user" value="uid=admin, ou=users, o=activiti" />
            <property name="password" value="pass" />

            <!-- Query params -->
            <property name="baseDn" value="o=activiti" />
            <property name="queryUserByUserId" value="(&(objectClass=inetOrgPerson)(uid={0}))" />
            <property name="queryUserByFullNameLike" value="(&(objectClass=inetOrgPerson)(|({0}=*{1}*)({2}=*{3}*)))" />
            <property name="queryGroupsForUser" value="(&(objectClass=groupOfUniqueNames)(uniqueMember={0}))" />

            <!-- Attribute config -->
            <property name="userIdAttribute" value="uid" />
            <property name="userFirstNameAttribute" value="cn" />
            <property name="userLastNameAttribute" value="sn" />

            <property name="groupIdAttribute" value="cn" />
            <property name="groupNameAttribute" value="cn" />

          </bean>
      </list>
    </property>
</bean>

7.4 为Explorer集成LDAP

把上面的LDAP配置添加到activiti-standalone-context.xml中。

把activiti-ldap jar放到WEB-INF/lib目录下

删除demoDataGenerator bean,因为它会尝试插入数据(集成LDAP不允许这么做)

将下面的配置添加到activiti-ui.context的explorerApp bean中:

...
...
<property name="adminGroups">
    <list>
        <value>admin</value>
    </list>
</property>
<property name="userGroups">
    <list>
        <value>user</value>
    </list>
</property>

请使用你自己的配置替换其中的值。需要用到的数据是组的id(通过groupIdAttribute配置)。 上述配置会让'admin'组下的所有用户都成为Activiti Explorer的管理员,用户组也一样。 所有不匹配的组都会当做“分配”组, 这样任务就可以分配给他们。

7、参考

三分钟了解Activity工作流:http://www.open-open.com/lib/view/open1438785141958.html
API文档: https://www.activiti.org/javadocs/index.html
使用手册:https://www.activiti.org/userguide/index.html
中文使用手册:http://www.mossle.com/docs/activiti/index.html

posted @ 2020-10-22 16:54  Varden  阅读(671)  评论(0编辑  收藏  举报