Настройка доступа к REST API процессного приложения Camunda BPM

Добрый день!

Из встроенной формы camunda tasklist идет обращение к эндпоинту кастомного rest api процессного приложения Camunda BPM (подгружаются бизнес-данные).

Каким образом лучше настроить доступ к ресурсам, чтобы только авторизованные пользователи tasklist имели к ним доступ?
Можно ли использовать реализацию security web app Camunda?

Данные подгружаются прямо во встроенную форму с использованием angular js в блоке script? Типа такого:

<script cam-script="cam-script" type="text/form-script">
    $scope.getRate = function() {
        /* alert(currency.value + '//' + amount.value); */
        var request = {
            "variables" : {
                "currency"      : { "value" : currency.value, "type" : "String" },
                "loanType"      : { "value" : product.value, "type" : "String" },
                "amount"        : { "value" : amount.value, "type" : "Long" }
            }
        };
        inject(['$scope', '$http', 'Uri', function($scope, $http, Uri) {
        $http({
            method: 'POST',
            url: 'https://demo2.reunico.com/engine-rest/decision-definition/key/Decision_Loan/evaluate',
            data: JSON.stringify(request)
        })
        .then(
            function (success) {
                $scope.rate = success.data[0].rate.value;
            },
            function (error) {
                $scope.data = error.data;
            }
        );
        }]);
    };
</script>

Да напрямую, но не через ангуляр, а так:

async function loadData(){
  let url = 'http://localhost:8080/items';
  let response = await fetch(url);

  if (response.ok) {
  var jsonData = await response.json();
  }
  else {
    alert("Ошибка HTTP: " + response.status);
  }
}

Нужно авторизовывать пользователя с помощью Spring Security. Чтобы этот же механизм работал для веб-приложений Camunda, необходимо реализовать фильтры:

  • SpringSecurityAuthenticationProvider (для веб-приложений)
  • StatelessUserAuthenticationFilter (для REST API)
  • Подключить их, см: WebAppSecurityConfig, RestSecurityConfig

пример проекта: GitHub - Reunico/camunda-spring-security-example: Camunda Spring Security Example

Либо как альтернативу (если объем бизнес-данных незначителен) рассмотрите вариант с дообогащением Task с помощью MyBATIS или Custom Queries (как описано в Camunda Best Practices).

https://camunda.com/best-practices/enhancing-tasklists-with-business-data/#implementing-custom-queries