Функція system_user()

1. Опис

JUEL-функція system_user(): UserDto необхідна для отримання системного користувача з Keycloak.

2. Параметри

Ця функція не приймає параметрів.

3. Що повертає

Ця функція повертає об’єкт типу UserDto, що містить дані про системного користувача.

Таблиця 1. UserDto

Поле

Опис

userName

Ім’я користувача.

accessToken

Токен користувача.

language

Мова користувача.

drfo

Ідентифікаційний код користувача.

edrpou

Код ЄДРПОУ користувача.

fullName

Повне ім’я користувача.

roles

Ролі користувача.

subjectType

Тип суб’єкта користувача.

isRepresentative

Чи є користувач представником.

attributes

Інші атрибути користувача у вигляді ключів-значень.

UserDto — клас, що є обгорткою даних користувача (тут — системного користувача). Завжди містить у собі userName, токен і JwtClaimsDto.

4. Методи взаємодії

Функція надає наступні методи:

Таблиця 2. Методи взаємодії

Метод

Опис

getUserName()

Повертає ім’я користувача, що можна використовувати в полях Assignee та Candidate Users задач користувача.

getAccessToken()

Повертає токен користувача, що можна використовувати в інтеграційних конекторах для інтеграції від імені користувача.

getLanguage()

Повертає мову користувача, що можна використовувати для налаштування інтерфейсу.

getDrfo()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут drfo користувача.

getEdrpou()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут edrpou користувача.

getFullName()

Делегує виклик на JwtClaimsDto та повертає Keycloak-атрибут fullName користувача.

getRoles()

Повертає ролі користувача.

getSubjectType()

Повертає тип суб’єкта користувача.

isRepresentative()

Повертає, чи є користувач представником.

getAttributes()

Повертає інші атрибути користувача у вигляді ключів-значень.

Функція system_user() використовується для отримання інформації про системного користувача, що зберігається в Keycloak.

5. Приклади використання

Один із можливих випадків використання функції system_user() — це передача X-Access-Token системного користувача для автентифікації під час виконання інтеграційних операцій у бізнес-процесі. Наприклад, у розширенні System signature by DSO service можна передати токен системного користувача, використовуючи функцію system_user() та метод accessToken.

${system_user().accessToken}
  • system_user() — викликає системного користувача, під яким відбувається процес.

  • accessToken — отримує токен доступу системного користувача.

Цей сценарій дозволяє використовувати токен для інтеграції з іншими сервісами або виконання дій від імені системного користувача, забезпечуючи необхідні права доступу.

Використання токенів інших користувачів

Крім токена системного користувача, є інші варіанти роботи з токенами в процесі:

  1. Використання токена ініціатора процесу. Ви можете отримати токен ініціатора, тобто користувача, який запустив процес, за допомогою функції initiator():

    ${initiator().accessToken}

    Цей токен зручно використовувати, коли процес потребує автентифікації від імені користувача, який ініціював поточний бізнес-процес.

  2. Використання токена виконавця попередньої задачі. Функція completer(): дозволяє отримати токен користувача, який завершив попереднє завдання у процесі:

    ${completer('Task definition ID').accessToken}

    'Task definition ID' — ідентифікатор попередньої задачі користувача.

    Цей сценарій зручний, коли вам потрібно продовжувати роботу від імені користувача, який завершив одну із попередніх задач у процесі.