Как остановить назначение ролей на основе определенных условий в OIM 11g r2 PS3

Я написал один обработчик событий для перехвата операций role_assignment и role_revoke.

Мне нужно запустить какой-то веб-сервис на удаленном сервере, и если ответ 200 _ OK, я ничего не хочу делать.

Но если ответ не 200, мне нужно не выполнить назначение ролей.

Как я должен это делать?


person SME    schedule 09.01.2017    source источник
comment
Когда проходит ваше мероприятие? Это событие PreProcess?   -  person Devin R    schedule 17.01.2017
comment
Да, это обработчик событий предварительной обработки.   -  person SME    schedule 18.01.2017


Ответы (2)


Вы должны выбросить EventFailedException из тела методов execute вашего обработчика событий при сбое. Это пометит оркестровку как неудачную. Неудачная оркестровка вызовет compensate для всех обработчиков событий, которые уже завершились, а затем завершится корректно со статусом FAILED. (Вы можете запросить таблицу ORCHPROCESS, чтобы найти неудачную оркестровку.)

См. JavaDoc для этого исключения здесь: https://docs.oracle.com/cd/E52734_01/oim/OMJAV/oracle/iam/platform/kernel/EventFailedException.html

И документация Oracle по разработке пользовательских обработчиков событий здесь: //docs.oracle.com/cd/E27559_01/dev.1112/e27150/oper.htm#BGBHBIFH

(Это для более ранней версии, но в основном то же самое в более поздних версиях.)

person Devin R    schedule 30.01.2017

Я бы добавил что-то в задачу процесса, чтобы обрабатывать ответы от веб-сервиса.

person Berkley Lamb    schedule 17.01.2017
comment
Можете ли вы более подробно рассказать о вашем подходе к задаче процесса, поскольку мы создаем роль, в которой мы можем использовать задачу процесса? - person SME; 18.01.2017