玩转camunda工作流引擎插件:自定义用户体系实现-附源码(camunda工作流开发实战)

原创不易,请多多支持!对Java技术感兴趣的童鞋请关注我,后续技术分享更精彩。

概述

上篇介绍了camunda工作流引擎的入门知识(开源、强大的工作流引擎:camunda入门介绍)。这篇将针对camunda用户体系做深入定制化集成,让引擎工具更好的与业务相结合。

实现思路

通过实现camunda定义的用户读写接口,并采用插件机制运行时注入到工作流引擎中,从而达到定制化用户替换框架默认用户体系的目的。

Identity Service

实现接口

•org.camunda.bpm.engine.impl.identity.ReadOnlyIdentityProvider

•org.camunda.bpm.engine.impl.identity.WritableIdentityProvider

Process Engine Plugin

插件实现说明:

https://docs.camunda.org/manual/7.7/user-guide/process-engine/process-engine-plugins/

插件实现接口:

org.camunda.bpm.engine.impl.cfg.ProcessEnginePlugin

Configure Process Engine Plugins

configure a process engine plugin in a bpm-platform.xml

<?xml version=\”1.0\” encoding=\”UTF-8\”?><bpm-platform xmlns=\”http://www.camunda.org/schema/1.0/BpmPlatform\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xsi:schemaLocation=\”http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.org/schema/1.0/BpmPlatform \”> <job-executor> <job-acquisition name=\”default\” /> </job-executor> <process-engine name=\”default\”> <job-acquisition>default</job-acquisition> <configuration>org.camunda.bpm.engine.impl.cfg.JtaProcessEngineConfiguration</configuration> <datasource>jdbc/ProcessEngine</datasource> <plugins> <plugin> <class>org.camunda.bpm.engine.MyCustomProcessEnginePlugin</class> <properties> <property name=\”boost\”>10</property> <property name=\”maxPerformance\”>true</property> <property name=\”actors\”>akka</property> </properties> </plugin> </plugins> </process-engine></bpm-platform>

configure a process engine plugin in a spring beans xml

<beans xmlns=\”http://www.springframework.org/schema/beans\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xsi:schemaLocation=\”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\”> <bean id=\”processEngineConfiguration\” class=\”org.camunda.bpm.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration\”> … <property name=\”processEnginePlugins\”> <list> <ref bean=\”ldapIdentityProviderPlugin\” /> </list> </property> </bean> <bean id=\”ldapIdentityProviderPlugin\” class=\”org.camunda.bpm.identity.impl.ldap.plugin.LdapIdentityProviderPlugin\”> <property name=\”serverUrl\” value=\”ldap://localhost:3433/\” /> <property name=\”managerDn\” value=\”uid=daniel,ou=office-berlin,o=camunda,c=org\” /> <property name=\”managerPassword\” value=\”daniel\” /> <property name=\”baseDn\” value=\”o=camunda,c=org\” /> <property name=\”userSearchBase\” value=\”\” /> <property name=\”userSearchFilter\” value=\”(objectclass=person)\” /> <property name=\”userIdAttribute\” value=\”uid\” /> <property name=\”userFirstnameAttribute\” value=\”cn\” /> <property name=\”userLastnameAttribute\” value=\”sn\” /> <property name=\”userEmailAttribute\” value=\”mail\” /> <property name=\”userPasswordAttribute\” value=\”userpassword\” /> <property name=\”groupSearchBase\” value=\”\” /> <property name=\”groupSearchFilter\” value=\”(objectclass=groupOfNames)\” /> <property name=\”groupIdAttribute\” value=\”ou\” /> <property name=\”groupNameAttribute\” value=\”cn\” /> <property name=\”groupMemberAttribute\” value=\”member\” /> <property name=\”authorizationCheckEnabled\” value=\”false\” /> </bean></beans>

Process Engine Plugins UML

玩转camunda工作流引擎插件:自定义用户体系实现-附源码(camunda工作流开发实战)

Process Engine Plugins 注意事项

•UserEntity和GroupEntity id属性表示业务系统中登陆用户名,非系统id主键。

•UserEntity password对应设置属性方法为setDbPassword,非setPassword。 setPassword表示修改密码的新密码属性方法入口。

Process Engine Plugins 集成示例

demo源代码实现请参考以下代码仓库地址

https://github.com/eagle00001/camunda-user-plugin-demo

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(1)
上一篇 2022年11月7日 上午10:12
下一篇 2022年11月7日 上午10:26

相关推荐