Как получить / создать / олицетворять InitiatorSession в рабочем процессе AEM

В рабочем процессе AEM, когда я пытаюсь олицетворять workflowSession для инициатора, возникает исключение:

javax.security.auth.login.FailedLoginException: олицетворение не разрешено.

Мне обязательно нужен сеанс инициатора, чтобы вызвать какую-то задачу в моем рабочем процессе, ранее я использовал это, используя:

initiatorSession= adminSession.impersonate(new SimpleCredentials(initiatorUser,"".toCharArray())); 

где adminSession теперь устарел, и мы сейчас используем системных пользователей, и поэтому я не могу выдать себя за пользователя системы за пользователя-инициатора, какие-либо предложения?

2 ответа

Вам нужна учетная запись пользователя, которая имеет разрешение на олицетворение. Ваша учетная запись службы должна быть разрешенным имитатором для пользователя, которого она пытается выдать.

Попробуйте контролировать разрешения с соответствующими группами пользователей.

Я не знаю ваш вариант использования, но вы не должны выдавать себя за инициатора, если рабочий процесс теперь назначен новому пользователю. Вы всегда можете адаптировать WorkflowSession к Session: Session session = workflowSession.adaptTo(Session.class) который даст вам сеанс инициаторов, если рабочий процесс не прошел пользовательский шаг и не изменился на нового пользователя. В противном случае вы можете создать системный сеанс пользователя, как вы упомянули, и использовать его.

Другие вопросы по тегам