TaskNotifier Developer guide ru

From RunaWFE
Jump to navigation Jump to search

RUNA WFE. Клиент-оповещатель. Руководство разработчика.


Версия 2.3


© 2004-2009, ЗАО “Руна ”. RUNA WFE является системой с открытым кодом и распространяется в соответствии с LGPL лицензией (http://www.gnu.org/licenses/lgpl.html).


Структура проекта


lib – дополнительные библиотеки

nsis – файлы сборки

resources – настройки приложения

resources/img – картинки для UI

src – исходники проекта


Архитектура


Приложение работает с системой RuneWFE по «двум каналам» : RMI и HTTP.

Аутентификация происходит как по HTTP, так и по RMI.

В случае HTTP можно использовать: ввод логин и пароля, NTLM, Kerberos (используются возможности браузера).

В случае RMI можно использовать: ввод логин и пароля, Kerberos (Java GSS API).


При работе по RMI используются 2 интерфейса:

AuthenticationServiceDelegate (для аутентификации) и ExecutionServiceDelegate (для проверки новых задач).

Приложение осуществляет 2 типа проверки: периодическая и принудительная. Первая происходит по таймауту, вторая – по события MouseOver в System tray.

При сборке приложения используется NSIS (NullSoft Installation System), для того чтобы в итоге получить EXE файл..


Описание классов


ru.runa.notifier.PlatformLoader

Стартовый класс приложения. При старте показывает сплеш (картинку) в другом Shell’е, после инициализации запускает другой Shell с поддержкой system tray.


ru.runa.notifier.GUI

Главный класс графической оболочки приложения, создает Browser, вешает обработчики событий на 3 правые кнопки в верхнем углу экрана.


ru.runa.notifier.tray.SystemTray

Обеспечивает поддержку в system tray. Содержит обработчики событий system tray.


ru.runa.notifier.tray.SystemTrayAlert

Реализует всплывающее окно возле system tray. Содержит функции отрисовки этого окна. Вызывается при необходимости уведомить пользователя о новых задачах.


ru.runa.notifier.checker.TaskChecker

Обеспечивает периодическую (TimerTask) и принудительную (SystemTray) проверку новых задач.


ru.runa.notifier.auth.LoginHelper

Класс служит для аутентификации в системе RuneWFE по протоколу Kerberos. В случае неуспешной аутентификации умеет выводить диалоговое окно.


ru.runa.notifier.auth.LoginModuleResources

Служит контейнером для настроек kerberos_module.properties


ru.runa.notifier.auth.LoginConfiguration

Конфигурация для аутентификации


org.eclipse.swt.widgets.STrayItem

Класс для обработки сообщений SWT. Создан для возможности реагирования на события MouseOver.


ru.runa.notifier.util.ExtendedThread

Используется классом SystemTrayAlert


ru.runa.notifier.util.WidgetsManager

Класс – помощник


ru.runa.notifier.util.ResourcesManager

Класс для загрузки и хранения значений application.properties


ru.runa.notifier.util.LayoutsManager

Класс – помощник, используется классом SystemTrayAlert


ru.runa.notifier.util.ImageManager

Класс – менеджер по работе с картинками (загрузка, выгрузка)


Настройка приложения


kerberos_module.properties


appName=com.sun.security.jgss.initiate

moduleClassName=com.sun.security.auth.module.Krb5LoginModule

useTicketCache=true

doNotPrompt=true

debug=false

serverPrincipal=WFServer


appName – название логин-модуля

moduleClassName – класс логин-модуля

useTicketCache – использовать ли кеш для билетов Kerberos

doNotPrompt – не использовать пользовательский ввод в любой ситуации

debug – дополнительное логирование при аутентификации

serverPrincipal – логин с серверной стороны (конфигурируется в АД)


application.properties


Все русскоязычные значения задаются в кодировке ANSI


application.name, popup.newtasks, user.name, user.password, login.message,

retry.message, error.login, error.internal, popup.no.tasks, popup.tease,

popup.error, menu.open, menu.exit – локализованные сообщения пользователя


server.url - URL сервера
(Пример: http://localhost:8080/wfe)
login.relative.url – начальная страница при запуске системы (аутентификация)
(Примеры: 
    /login.do – форма для ввода логина и пароля;
    /ntlm.do – аутентификация по NTLM;
    /krblogin.do - аутентификация по Kerberos;
)
start.relative.url – страница с задачами
(Пример: /manage_tasks.do?tabForwardName=manage_tasks)


check.tasks.timeout – Таймаут проверки новых задач, мс

check.tasks.min_interval – Минимальный таймаут для принудительной проверки новых задач, мс


authentication.type – задает тип аутентификации по RMI (возможные значения userinput, kerberos)


infopath.submit.button.name – Название кнопки запуска формы InfoPath
infopath.cancel.button.name – Название кнопки отмены формы InfoPath
(Только для аутентификации по логину и паролю)
userinput.default.login – логин по умолчанию, рекомендуется оставить пустым
userinput.default.password – пароль по умолчанию, рекомендуется оставить пустым