Why not give it a try?
In this post, I’ll walk you through the steps I followed to create a RESTful API (Resource Server) that embeds Flowable’s BPMN engine, exposes the BPMN engine’s RESTful API and leverages Spring Security’s support for OAuth 2.0 and Jason Web Tokens (JWTs).
Ref: Flowable OAuth2 Resource Server
Flowable UI Applications
- Flowable Identity Management
- Flowable Modeler
- Flowable Task
- Flowable Admin
You can download the Flowable open source distribution from the Flowable web site.
Externalised Configuration
The Flowable Web applications take advantage of Spring Boot’s support for externalised configuration:
spring.main.banner-mode=off
# Logging
logging.level.root=INFO
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logging.level.org.springframework.security=DEBUG
# Spring JPA
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/serendipity-db/db;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9091;DB_CLOSE_DELAY=-1
spring.datasource.username=admin
spring.datasource.password=secret
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
# spring.jpa.hibernate.ddl-auto=create-drop
# spring.jpa.hibernate.ddl-auto=none
# H2 Console
spring.h2.console.enabled=false
spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false
# Default Admin Accounts
flowable.idm.app.admin.user-id=flowable
flowable.idm.app.admin.password=secret
flowable.idm.app.admin.first-name=
flowable.idm.app.admin.last-name=Administrator
flowable.idm.app.admin.email=admin@serendipity.org.au
flowable.common.app.idm-admin.user=flowable
flowable.common.app.idm-admin.password=secret
flowable.modeler.app.deployment-api-url=http://localhost:9999/flowable-task/app-api
# LDAP
flowable.idm.ldap.enabled=true
flowable.idm.ldap.server=ldap://localhost
flowable.idm.ldap.port=10389
flowable.idm.ldap.user=cn=admin,dc=flowable,dc=org
flowable.idm.ldap.password=secret
flowable.idm.ldap.base-dn=dc=flowable,dc=org
flowable.idm.ldap.user-base-dn=ou=users,dc=flowable,dc=org
flowable.idm.ldap.group-base-dn=ou=groups,dc=flowable,dc=org
flowable.idm.ldap.query.user-by-id=(&(objectClass=inetOrgPerson)(uid={0}))
flowable.idm.ldap.query.user-by-full-name-like=(&(objectClass=inetOrgPerson)(|({0}=*{1}*)({2}=*{3}*)))
flowable.idm.ldap.query.all-users=(objectClass=inetOrgPerson)
flowable.idm.ldap.query.groups-for-user=(&(objectClass=groupOfUniqueNames)(uniqueMember={0}))
flowable.idm.ldap.query.all-groups=(objectClass=groupOfUniqueNames)
flowable.idm.ldap.query.group-by-id=(&(objectClass=groupOfUniqueNames)(uniqueId={0}))
flowable.idm.ldap.attribute.user-id=uid
flowable.idm.ldap.attribute.first-name=cn
flowable.idm.ldap.attribute.last-name=sn
flowable.idm.ldap.attribute.email=mail
flowable.idm.ldap.attribute.group-id=cn
flowable.idm.ldap.attribute.group-name=cn
flowable.idm.ldap.cache.group-size=10000
flowable.idm.ldap.cache.group-expiration=180000
Flowable Identity Management
To launch Flowable’s Identity Management application:
java -jar flowable-idm.war
Then navigate to: http://localhost:8080/flowable-idm
Flowable Modeler
To launch Flowable’s Modeler application:
java -jar flowable-modeler.war
Then navigate to: http://localhost:8888/flowable-modeler
Flowable Task
To launch Flowable’s Task application:
java -jar flowable-task.war
Then navigate to: http://localhost:9999/flowable-task
Flowable Admin
To launch Flowable’s Admin application:
java -jar flowable-admin.war
Then navigate to: http://localhost:9988/flowable-admin
Source Code:
References: