Skip to main content

Developing Prepopulate Adapter with OIM 11g R2

1.     Prepopulate Adapter in OIM uses the plugin point oracle.iam.request.plugins.PrePopulationAdapter.
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.PrePopulationAdapter.
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 class DepartmentPrepopulate implements oracle.iam.request.plugins.PrePopulationAdapter{
       private static final Logger LOGGER = Logger.getLogger("com.oracle.oim.utility.eventhandler.DepartmentPrepopulate");
       @Override
       public Serializable prepopulate(RequestData reqData) throws RequestServiceException {
             LOGGER.fine("DepartmentPrepopulate :: prepopulate :: Inside Prepopulate method ");
             LOGGER.fine("DepartmentPrepopulate :: prepopulate ::  name "+DepartmentPrepopulate.class.getName());
             UserManager uMan=Platform.getService(UserManager.class);
             List<Beneficiary> benList = reqData.getBeneficiaries();
             String dep=null;
            
                                 //<Implement Logic here>
catch (NoSuchUserException e) {
                                 // TODO Auto-generated catch block
                                 LOGGER.fine("DepartmentPrepopulate :: prepopulate ::  NoSuchUserException"+e.getMessage() );
                                 e.printStackTrace();
                           } catch (UserLookupException e) {
                                 // TODO Auto-generated catch block
                                 LOGGER.fine("DepartmentPrepopulate :: prepopulate ::  UserLookupException"+e.getMessage() );
                                 e.printStackTrace();
                           } catch (AccessDeniedException e) {
                                 // TODO Auto-generated catch block
                                 LOGGER.fine("DepartmentPrepopulate :: prepopulate ::  AccessDeniedException"+e.getMessage() );
                                 e.printStackTrace();
                           }
                          
                    }
             }
             // TODO Auto-generated method stub
             return dep;
       }

}
4.     Export the code into a Jar file and put it in a folder named as lib.
5.     Create a plugin.xml file as below:-
<?xml version="1.0" encoding="UTF-8" ?> 
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
 <plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter"> 
 <plugin pluginclass= "com.oracle.oim.utility.eventhandler.DepartmentPrepopulate" version="1.0" name="DepartmentPrePop"> 
  <metadata name="PrePopulationAdapater"> 
   <value><Form_name>::<Field_label> </value> 
  </metadata> 
 </plugin> 
</plugins> 
</oimplugins>

6.     Put the Plugin.xml and lib folder in a structure as below:
7.     After the zip is prepared put it into <Middleware_home>/Oracle_IDM/server/plugins  folder.
8.     Go to <Middleware_home>/Oracle_IDM/server/plugin_utility folder and change the ant.properties file.
9.     Update the wls.home, oim.home, login.config and mw.home with proper details.

10.  Run the ant -f pluginregistration.xml register command to register the plugin.

Comments

  1. do I have to restart OIM after that?

    ReplyDelete
  2. ant -f pluginregistration.xml

    bash: ant: command not found

    ReplyDelete
    Replies
    1. Ant should be set in your path. Add ant 1.7 in your path and this will work.

      Delete
  3. which data will i pass instead of ::.
    I think is UD_* & is UD_* form field label right

    ReplyDelete

Post a Comment

Popular posts from this blog

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