As previously mentioned, jBPM allows for smooth integration with its accesible and well-secured REST API. It enables us to create our own powerful tools that act as an extension of jBPM, an example of such is the one I’ve created for demonstrative purposes, qBPM.
Before we begin, we need to understand the structure of qBPM. qBPM uses a React frontend and a SpringBoot backend. Aside from serving as our React application’s API, SpringBoot serves as a proxy between jBPM and our client-side due to browser CORS policies preventing us from sending requests to jBPM(at least for me) through our React application. Besides, I find it more organised to have my client application only call from a single domain and have my backend do most of the dirty work.
Before we begin downloading the codebase and setting things up, we need to configure our jBPM’s system settings. As previously mentioned, jBPM’s REST API requires authentication to access it. That’s why we use
wbadmin as our system admin account and use its credentials for authentication.
However, when we want to get tasks specific to a user, let’s name them User B, by default it only returns tasks that are available for the user that we use for authentication(i.e wbadmin’s tasks). In order to get the tasks for User B while using
wbadmin’s credentials instead of User B’s credentials, we need to enable bypass authentication in jBPM’s configuration.
We can’t use User B’s credentials because qBPM ensures that passwords are hashed
Let’s get straight to that. Navigate to jBPM’s root folder, enter the
standalone folder, enter
configuration, and edit
standalone.xml. Under the
<system-properties> tag, add the line:
<property name="org.kie.server.bypass.auth.user" value="true"/>. Save it, and restart jBPM.