Skip to main content

Fetching User Attributes and Creating User - OIM API

package com.oim.utilities;

import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
import Thor.API.tcUtilityFactory;
import oracle.iam.identity.exception.NoSuchUserException;
import oracle.iam.identity.exception.SearchKeyNotUniqueException;
import oracle.iam.identity.exception.UserLookupException;
import oracle.iam.identity.usermgmt.api.UserManager;
import oracle.iam.identity.usermgmt.vo.User;
import oracle.iam.platform.OIMClient;

public class ClientOIM
{
private static OIMClient oimClient = null;
    private static tcUtilityFactory util = null;
    static UserManager userManager = null;
    private static String hostName = "oim.server.com";
    private static String port = "14000";
    private static String userName = "xelsysadm";
    private static String password = "Welcome123";
    private static String serverURL = "t3://" + hostName + ":" + port;
    private static String authConfigLoc = "C:\\Users\\Desktop\\designconsole\\config\\authwl.conf";
    private static String ctxFactory = "weblogic.jndi.WLInitialContextFactory";

// Method to get the connection of OIM
@SuppressWarnings("deprecation")
private static void initialise() 
{
   try 
   {
   
System.out.println("ClientOIM :: initialise :: Host to connect :: "+hostName);
       Hashtable<String, String> env = new Hashtable<String, String>();
       //setting system properties
       env.put("java.naming.provider.url", serverURL);
       env.put("java.naming.factory.initial", ctxFactory);
       System.setProperty("APPSERVER_TYPE", "wls");
       System.setProperty("java.security.auth.login.config", authConfigLoc);
       System.setProperty("weblogic.Name", "oim_server1");
       
       oimClient = new OIMClient(env);
       oimClient.login(userName, password);
       util = new tcUtilityFactory(env, userName, password);
       System.out.println("ClientOIM :: initialise :: util :: "+util);
   } 
   catch (Exception e) 
   {
       System.err.println("ClientOIM :: initialise :: Issue with the client login please check configurations");
       e.printStackTrace();
       System.exit(1);
   }
}

public static String getUserKey(final String userLogin)
{
 
System.out.println("ClientOIM :: getUserKey ::method Started.");

String userKey = null;
try 
{
if (userLogin == null)  
{
System.out.println("ClientOIM ::  getUserKey :: UserLogin is either null or empty");
}
else
{
final Set<String> returnMap = new HashSet<String>();

/* Initialize the User Manager Service */
userManager = oimClient.getService(UserManager.class);
System.out.println("ClientOIM ::  getUserKey :: userManager :: "+userManager);

/* Check whether User Manager Service properly initialized */
if(userManager != null)
{
/* Get User object belonging to the User Key */
final User user = userManager.getDetails("User Login", userLogin, returnMap);
System.out.println("ClientOIM ::  getUserKey :: user :: "+user);
/* If User object is not null then retrieve User Login */
if(user != null)
{
userKey = user.getEntityId();
System.out.println("ClientOIM ::  getUserKey :: userKey :: "+userKey);
}
}
}
 

catch (NoSuchUserException e) 
{
System.out.println("ClientOIM ::  getUserKey :: NoSuchUserException :: " + e.getMessage());
}
catch (UserLookupException e)
{
System.out.println("ClientOIM ::  getUserKey :: UserLookupException :: " + e.getMessage());
}
catch (SearchKeyNotUniqueException e) 
{
System.out.println("ClientOIM ::  getUserKey :: SearchKeyNotUniqueException :: " + e.getMessage());

catch (Exception e) 
{
System.out.println("ClientOIM ::  getUserKey :: Exception :: " + e.getMessage());
}
System.out.println("ClientOIM :: getUserKey :: method ended.");
return userKey;
}
public static void createUser()

{
try 
{
initialise();
userManager = oimClient.getService(UserManager.class);
System.out.println("ClientOIM ::  createUser :: userManager :: "+userManager);
User newUser = new User(null);
if(userManager != null)
{
newUser.setAttribute("First Name", "TestUser");
newUser.setAttribute("Last Name", "TestUser");
newUser.setAttribute("Email", "TestUser@mail.com");
newUser.setAttribute("act_key",1L); 
newUser.setAttribute("Role","Full-Time");
newUser.setAttribute("Xellerate Type","End-User");
            userManager.create(newUser);
            System.out.println("ClientOIM ::  createUser :: userManager :: User Created");
}
}
catch (Exception e) 
{
System.out.println("ClientOIM ::  createUser :: Exception :: " + e.getMessage());
}


}
public static void main(String[] args)
{

//initialise();
//String userLogin = "TEST";
//getUserKey(userLogin);
createUser();

}
}



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