Рабочий процесс отклонения запроса OIM/SOA по умолчанию
Я настраиваю рабочий процесс для запросов на предоставление / отзыв роли в OIM 11.1.2.3 / SOA 11.1.1.9.
Если запрос инициирован пользователем, который находится в определенной роли администратора, и запрос состоит в том, чтобы назначить / отменить определенную роль, я могу установить правило рабочего процесса для утверждения запроса, и роль будет предоставлена / отозвана через ' прямой 'нет обработки рабочего процесса.
Если запрос инициирован системным администратором, я могу использовать готовое правило рабочего процесса, чтобы утвердить запрос, и роль будет предоставлена / отозвана через "прямую" обработку без рабочего процесса.
Мне нужно отклонить запрос в любых других обстоятельствах.
Я думаю, что способ сделать это состоит в том, чтобы создать пользовательскую композицию рабочего процесса SOA, которая имеет только один результат REJECT, и сконфигурировать его как конечное правило рабочего процесса, чтобы оно выполнялось, если предыдущие правила не совпадают.
Является ли этот подход к выполнению требования правильным? Я не хочу инициировать какое-либо человеческое взаимодействие, просто отклоняю изменения и заканчиваю обработку.
1 ответ
Мы решили выполнить это требование, используя валидатор данных вместо рабочего процесса REJECT SOA.
Мы создали специальный валидатор, который расширяет AssignRolesDataValidator. Если запрос инициирован кем-либо, кто не является системным администратором и не имеет необходимых административных ролей для запрашиваемой роли, средство проверки данных сгенерирует исключение InvalidRequestDataException, и на экране отобразится сообщение об ошибке. Обработка продолжается и оценивает правила рабочего процесса только в том случае, если метод validate validate данных завершается без исключения, т. Е. Если этот пользователь может выполнить запрос. Тогда правила рабочего процесса просто имеют дело с тем, как запрос одобрен (в каждом случае выше, с помощью "прямого" назначения и без рабочего процесса), а не с решением об утверждении или отклонении.
Преимущество этого заключается в том, что можно разрешать только "действительные" запросы (назначение ролей действительными членами роли администратора), но усложняет настройку логики для потока. Нам нужно будет поддерживать как код валидатора данных, так и правила рабочего процесса.
Любая обратная связь / совет будет приветствоваться.