From RunaWFE
Revision as of 06:37, 23 November 2020 by WikiSysop (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Task Notifier developer guide

RunaWFE Free Workflow System (BPMS) Version 4.4.2

© 2015-2021, "Process Technologies" Ltd, this document is available under GNU FDL license. RunaWFE Free is an open source system distributed under a LGPL license (

# Building from source

Java 1.7 is used

Before building it's necessary to build wfe-webservice-client and install it in the local repository:

mvn clean install (in wfe-webservice-client directory)

The building must be carried out with the Server turned on.


mvn clean compile assembly:single

  • src/main/assembly — files for building
  • src/main/java — source files
  • src/main/resources — application configurations

Note. By default application is build for the current OS (if corresponding profile is detected automatically). If it's necessary to build application for another OS then indicate profile name explicitly or add new profile. Example mvn clean compile assembly:single -Plinux32

TODO maven-driven exe building

TODO now only 1 jar with resources inside is build. It's not convenient to configure

# Architecture

Application connects to WFE Server in two ways simultaneously: via HTTP from browser and via WebServices API from java code. HTTP and WebServices API calls are independent and are used for different purposes. WebServices API is used to get information for tray icon and popup messages. HTTP is not used straight from the application at all, but it is used from the built-in browser to display RunaWFE web interface. (Mostly user interacts with RunaWFE through web-interface via build-in browser.)

When application starts it's necessary for it to be authenticated in RunaWFE system. It's done both by HTTP and WebServices API. Until application authenticates via WebServices API there's a brick icon in the tray and new tasks popup notification messages are not available. Until application authenticates via HTTP the web-interface in the build-in browser is not available. Uncompleted WebServices API authentication is not preventing web interface usage and new tasks appearance in it.

Application periodically checks current user tasks (via WebServices API) and if there are new tasks the icon in the tray is changed and popup message is displayed. New tasks check is also carried out on MouseOver event in System tray.

# Authentication

In order to add authentication for the application via WebServices it is necessary to create a class that implements ru.runa.notifier.auth.Authenticator interface and add this class to LoginHelper. Currently there are 3 classes implementing this interface:

  • UserInputAuthenticator (userinput) — to be authenticated in RunaWFE by user login and password. User inputs login and password in popup window before the working session starts.
  • KerberosAuthenticator (kerberos) — to be authenticated in RunaWFE via kerberos protocol. No additional user input is required.
  • SSPIKerberosAuthenticator (sspiKerberos) — to be authenticated in RunaWFE via kerberos protocol. JNA is used for the authentication.