NotifierDeveloperGuide

Материал из RunaWFE
Перейти к навигации Перейти к поиску

Оповещатель. Руководство разработчика

Версия 4.4.2

© 2015-2021, ООО "Процессные технологии", материалы этого документа распространяются свободно на условиях лицензии GNU FDL. RunaWFE Free является системой с открытым кодом и распространяется в соответствии с LGPL лицензией (http://www.gnu.org/licenses/lgpl.html).

# Сборка

Используется Java 8


Перед сборкой необходимо выполнить сборку проекта wfe-webservice-client и инсталлировать в локальный репозиторий командой

mvn clean install (в папке wfe-webservice-client)

Сборку необходимо выполнять при включённом сервере.


Для сборки выполните команду

mvn clean compile assembly:single

  • src/main/assembly — файлы для сборки
  • src/main/java — исходные файлы
  • src/main/resources — настройки приложения

Замечание. По умолчанию сборка пройдёт для текущей платформы (если соответствующий профиль будет определён автоматически). В случае потребности собрать оповещатель для другой платформы, необходимо явно указать название профиля или добавить новый профиль. Например mvn clean compile assembly:single -Plinux32

TODO не сделано формирование exe средствами maven

TODO делается 1 jar вместе с ресурсами внутри, конфигурировать неудобно

Основные настройки вынесены во всплывающее при запуске окно см. https://runawfe.org/rus/doc/NotifierConfigurationGuide

# Архитектура

Приложение работает с системой RunaWFE по двум "каналам" одновременно: HTTP через браузер и WebServices API из java кода. Обращения к системе по WebServices API и HTTP не зависимы друг от друга и используются для разных целей. WebServices API используется для получения информации, необходимой при отображении трея приложения и всплывающих подсказок. Общение по протоколу HTTP напрямую клиентом-оповещателем не используется, и производится во встроенном браузере для отображения web интерфейса системы RunaWFE (основная работа пользователя с системой RunaWFE происходит внутри встроенного браузера посредством web-интерфейса).

Перед началом работы необходимо, что бы клиент-оповещатель аутентифицировался в системе RunaWFE. Аутентификация происходит как по протоколу HTTP, так и по WebServices API. До аутентификации клиента-оповещателя по WebServices API в трее будет отображаться «кирпич» и функциональность по оповещению о новых задачах будет недоступна. До аутентификации по протоколу HTTP web интерфейс системы RunaWFE будет недоступен. В то же время незавершенная аутентификация по WebServices API не мешает использованию web интерфейса (оповещения о новых заданиях).

Клиент-оповещатель периодически проверяет текущие задания пользователя (по протоколу WebServices API) и в случае изменения заданий пользователя сообщает пользователю через трей и всплывающие подсказки. По событию MouseOver в System tray так-же происходит проверка заданий и оповещение пользователя.

# Аутентификация

Для добавления механизма аутентификации клиента-оповещателя по протоколу WebServices API необходимо создать класс, реализующий интерфейс ru.runa.notifier.auth.Authenticator и добавить созданный класс в LoginHelper. В настоящее время реализовано 3 аутентификатора:

  • UserInputAuthenticator (userinput) — для аутентификации в системе RunaWFE с использованием логина и пароля пользователя. Логин и пароль пользователя попросят ввести перед началом работы в сплывающем окне.
  • KerberosAuthenticator (kerberos) — для аутентификации в системе RunaWFE с использованием протокола kerberos. Аутентификация происходит без дополнительных запросов у пользователя.
  • SSPIKerberosAuthenticator (sspiKerberos) — для аутентификации в системе RunaWFE с использованием протокола kerberos. Аутентификация происходит с помощью JNA.