Skip to main content

Plug-ins and Plug-in points in OIM 11g R2


Plug-ins are used to customize the default functionality of Oracle Identity Manager and to add extra features based on business requirement  (Like Random password/UserID generation, Generating company code based on organization, Prepopulating values from user data while raising request) .  There is already a defined and constrained set of plug-ins which can be extended to provide desired functionality. Below is the list of all the supported plug-ins:-

Plug-in Point
 Functionality
oracle.iam.ldapsync.LDAPContainerMapper
This is used by LDAP synchronization to determine which user/role container should be used to create the user/role in LDAP.
oracle.iam.platform.kernel.spi.EventHandler
This plug-in point is extended in case of creating Event Handlers. By extending this plug-in point Event handlers can be written at the various Orchestration stages of OIM like Preprocess, Postprocess, Validation etc.
oracle.iam.platform.auth.api.LoginMapper
This plug-in point is used to override the default mapping of JAAS user principal name to Oracle Identity Manager username for SSO scenarios.
oracle.iam.identity.usermgmt.api.PasswordVerifier
This plug-in is extended where the verification of old password is required while changing the password.  It uses ‘OIM.OldPasswordValidator’ system property to configure the class used for validation.
oracle.iam.request.plugins.StatusChangeEvent
This plug-in is extended to trigger events on change of status of a request in OIM.
oracle.iam.request.plugins.RequestDataValidator
This plugin is used in case where validation of request data is required (Like validation of user organization or company code in request data set). It gives a validation exception to user in case of any failure of validation.
oracle.iam.request.plugins.PrePopulationAdapter
This is used to populate existing attributes on run time during request creation.  
oracle.iam.scheduler.vo.TaskSupport
This is used to run the job in context. Execute method of the task is retrieved through the plug-in and is loaded.
oracle.iam.identity.usermgmt.api.UserNamePolicy
This plug-in is used to generate the userid of user based on business requirement (like First three + Last three letters of name). It is also used to validate the username on defined rules.
oracle.iam.identity.usermgmt.api.ReservationInLDAP
This is an implementation for reservation of user attributes in LDAP.

Comments

Popular posts from this blog

Developing Prepopulate Adapter with OIM 11g R2

1.      Prepopulate Adapter in OIM uses the plugin point oracle.iam.request.plugins.PrePopulationAdapte r. 2.      Write the Java code which returns the value which has to be populated on the form. 3.      This code will implement the plugin point oracle.iam.request.plugins.PrePopulationAdapte r. Code Snippet: - package com.oracle.oim.utility.eventhandler; import java.io.Serializable; import java.util.Iterator; import java.util.List; import java.util.logging.Logger; import oracle.iam.identity.exception.NoSuchUserException; import oracle.iam.identity.exception.UserLookupException; import oracle.iam.identity.usermgmt.api.UserManager; import oracle.iam.identity.usermgmt.vo.User; import oracle.iam.platform.Platform; import oracle.iam.platform.authz.exception.AccessDeniedException; import oracle.iam.request.exception.RequestServiceException; import oracle.iam.request.vo.Beneficiary; import oracle.iam.request.vo.RequestData; public c

OIM Tuning

Application Module tuning is a critical setting which will affect the UI performance. Following are the recommended application module settings for OIM and these are already set out-of-box (OOB) in later releases of OIM 11g R2. Ensure that these settings are implemented as recommended in your environment. -Djbo.ampool.doampooling=true -Djbo.ampool.minavailablesize=1 -Djbo.ampool.maxavailablesize=120 -Djbo.recyclethreshold=60 - Djbo.ampool.timetolive=-1 -Djbo.load.components.lazily=true - Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1 - Djbo.connectfailover=false -Djbo.max.cursors=5 - Doracle.jdbc.implicitStatementCacheSize=5 - Doracle.jdbc.maxCachedBufferSize=19 open DOMAIN_HOME/bin/setDomainEnv.sh file for the WebLogic Server instance.find these lines: JAVA_OPTIONS="${JAVA_OPTIONS}" export JAVA_OPTIONS and change it to: JAVA_OPTIONS="-Djbo.ampool.doampooling=true -Djbo.ampool.minavailablesize=1 -Djbo.ampool.maxavailablesize=120 -D

Creating Role through OIM API - 11gR2

package com.oim.utilities; import java.util.HashMap; import oracle.iam.identity.rolemgmt.api.RoleManager; import oracle.iam.identity.rolemgmt.api.RoleManagerConstants; import oracle.iam.identity.rolemgmt.vo.Role; import oracle.iam.platform.OIMClient; public class RoleManagement  { static RoleManager roleManager=null; static OIMClient client=null; @SuppressWarnings("null") public static void createRole(String roleName){ System.out.println("RoleManagement :: createRole :: role name is "+roleName); try  { if (roleName!=null) { HashMap<String, Object> mapAttrs = new HashMap<String, Object>();; mapAttrs.put(RoleManagerConstants.ROLE_NAME, roleName); mapAttrs.put(RoleManagerConstants.ROLE_DISPLAY_NAME,roleName); mapAttrs.put(RoleManagerConstants.ROLE_DESCRIPTION, roleName); Role role = new Role(mapAttrs); // Initialising the OIM Connection client=ClientOIM.initialise(); System.out.println("RoleManagemen