1

我正在为在 OIM 11.1.2.3 / SOA 11.1.1.9 中授予/撤销角色的请求配置工作流。

如果请求是由具有特定管理员角色的用户发起的,并且请求是分配/撤销特定角色,我可以设置工作流规则来批准请求,并且角色将通过“授予/撤销”直接'没有工作流处理。

如果请求是由系统管理员发起的,我可以使用开箱即用的工作流规则来批准请求,并且角色将通过“直接”无工作流处理被授予/撤销。

我需要在任何其他情况下拒绝该请求。

我认为这样做的方法是创建一个自定义 SOA 工作流组合,它只有一个 REJECT 结果并将其配置为最终的工作流规则,以便在早期规则不匹配时执行。

这种实现需求的方法是否正确?我不想触发任何人机交互,只是拒绝更改并结束处理。

4

1 回答 1

1

我们决定使用数据验证器而不是 REJECT SOA 工作流来实现这一要求。

我们创建了一个扩展 AssignRolesDataValidator 的自定义验证器。如果请求是由不是系统管理员且不在所请求角色所需的管理员角色中的任何人发起的,则数据验证器将抛出 InvalidRequestDataException 并在屏幕上显示错误消息。仅当数据验证器 validate() 方法无异常完成时(即,如果该用户允许发出请求),处理才会继续并评估工作流规则。然后,工作流规则只处理如何批准请求(在上述每种情况下,通过“直接”分配而不是工作流),而不是批准或拒绝的决定。

这样做的好处是只允许“有效”请求(由有效的管理员角色成员分配角色),但会使流程逻辑的配置方式复杂化。我们需要维护数据验证器代码和工作流规则。

任何反馈/建议都将受到欢迎。

于 2017-02-12T22:05:05.193 回答