2015-06-15 24 views

回答

2

插件是一代碼模塊可在OIM服務器內運行。它包含與元數據(plugin.xml)一起執行的Java類,用於標識它們。插件有很多種類型 - 類型取決於插件實現/擴展的Java接口或抽象類。

OIM的核心組件之一是編排引擎。它處理核心身份對象(例如用戶,角色等)上的創建/更新/刪除事務。每個編排流程都涉及一系列事件處理程序的執行,每個事件處理程序都是一個實現oracle.iam.platform.kernel.spi.EventHandler的插件。許多是開箱即用的,你也可以編寫自定義的。例如,您可以安裝一個事件處理程序,以在創建任何用戶之後(後處理)運行。

但是,也有其他類型的插件 - 例如,登錄名稱生成插件(oracle.iam.identity.usermgmt.api.UserNamePolicy)。其中一些插件實際上是由開箱即用的事件處理程序調用的。事件處理程序是一個非常通用的API(它們在概念上與數據庫觸發器類似) - 它們具有很強大的功能,但如果不小心使用該功能,則可能會破壞OIM環境的穩定性。相比之下,其他插件接口僅執行一項特定任務(例如爲新用戶生成登錄名),因此使用它們的風險要小得多。如果您可以使用某種更具體的插件來解決您的問題,那麼優先使用事件處理程序。

您還會發現,雖然其中一些更具體的插件接口是由開箱即用的事件處理程序調用的,但其他接口不是由編排引擎調用,而是由OIM中的其他組件調用。例如,計劃任務不由編排引擎運行,而由嵌入式Quartz調度程序運行。自定義計劃任務擴展了oracle.iam.scheduler.vo.TaskSupport抽象類。

儘管每個插件都需要插件框架元數據(plugin.xml),但某些特定類型的插件需要特定於該類型的附加元數據。例如,事件處理程序需要上傳到MDS的EventHandlers.xml;同樣,計劃任務需要在task.xml文件中定義。

OIM 9.x也有一個「事件處理程序」的概念,但這項技術與OIM 11g中的技術不同。 OIM 9.x事件處理程序擴展類com.thortech.xl.client.events.tcBaseEvent。通常,11g中不再支持9.x事件處理程序。

欲瞭解更多信息,請閱讀OIM 11.1.2.3開發者指南中這些章節:chapter 17用於開發自定義事件處理程序插件開發,chapter 18的基礎知識,並chapter 16用於開發自定義計劃任務,並appendix B用於開發自定義的用戶名和通用名稱生成/驗證策略。

另外,如果你想要一些樣本,並有機會獲得到My Oracle Support,看看這些文件:

  • OIM11g:示例代碼爲自定義用戶名發電政策插件使用JDeveloper(文件編號1228035。1)
  • OIM11g:示例代碼實現對前處理階段在創建用戶管理操作(文檔ID 1262803.1)的自定義事件處理程序
  • 如何創建一個請求驗證器來驗證在OIM第11G(文檔ID 1317087.1理由屬性)
  • 如何確定修改編排中的OIM用戶屬性更改(文檔ID 1535503.1)
相關問題