Description: A Java application to demonstrate how to connect to your OIM Schema provided that you have an OIMClient. The user who is logged in for the OIMClient needs to be an End-User Administrator in order to use the tcDatabaseClient. The “Design Console Access” attribute on the OIM User Profile determines whether a user is an End-User or an End-User Administrator. Accessing the OIM Schema through this method does not need the database user credential.
import Thor.API.Security.XLClientSecurityAssociation; import com.thortech.xl.client.dataobj.tcDataBaseClient; import com.thortech.xl.dataaccess.tcClientDataAccessException; import com.thortech.xl.dataaccess.tcDataProvider; import com.thortech.xl.dataaccess.tcDataSet; import com.thortech.xl.dataaccess.tcDataSetException; import com.thortech.xl.orb.dataaccess.tcDataAccessException; import java.util.Hashtable; import java.util.logging.Level; import java.util.logging.Logger; import javax.security.auth.login.LoginException; import oracle.iam.platform.OIMClient; /** * This demonstrates how to connect to the OIM Schema * using the OIMClient. The OIM administrator credential is required. */ public class OIMClientDBConnection { public static void main(String[] args) { tcDataProvider dbProvider = null; //OIM Schema Database Client OIMClient oimClient = null; try { String ctxFactory = "weblogic.jndi.WLInitialContextFactory"; //WebLogic Context String oimServerURL = "t3://localhost:14000"; //OIM URL String authwlConfigPath = "/home/oracle/oimClient_lib/conf/authwl.conf"; //Path to login configuration String username = "xelsysadm"; //OIM Administrator String password = "Password1"; //Administrator Password System.setProperty("java.security.auth.login.config", authwlConfigPath); //set the login configuration Hashtable<string,string> env = new Hashtable<string,string>(); //use to store OIM environment properties env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, ctxFactory); env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, oimServerURL); oimClient = new OIMClient(env); oimClient.login(username, password.toCharArray()); //login to OIM //Establish connection to OIM Schema through the OIMClient XLClientSecurityAssociation.setClientHandle(oimClient); dbProvider = new tcDataBaseClient(); String query = "SELECT * FROM USR"; //Query all OIM users tcDataSet usersDataSet = new tcDataSet(); //store result set of query usersDataSet.setQuery(dbProvider, query); usersDataSet.executeQuery(); int numColumns = usersDataSet.getColumnCount(); int numRecords = usersDataSet.getTotalRowCount(); //iterate through each record for(int i = 0; i < numRecords; i++) { usersDataSet.goToRow(i); //iterate through each column of a record for(int j = 0; j < numColumns; j++) { String columnName = usersDataSet.getColumnName(j); String value = usersDataSet.getString(j); System.out.println(columnName + " = " + value); } System.out.println(); } } catch (tcDataSetException ex) { Logger.getLogger(OIMClientDBConnection.class.getName()).log(Level.SEVERE, null, ex); } catch (LoginException ex) { Logger.getLogger(OIMClientDBConnection.class.getName()).log(Level.SEVERE, null, ex); } //resources need to be closed finally { if(dbProvider != null) { try { dbProvider.close(); } catch (tcDataAccessException ex) { Logger.getLogger(OIMClientDBConnection.class.getName()).log(Level.SEVERE, null, ex); } catch (tcClientDataAccessException ex) { Logger.getLogger(OIMClientDBConnection.class.getName()).log(Level.SEVERE, null, ex); } } XLClientSecurityAssociation.clearThreadLoginSession(); if(oimClient != null) { oimClient.logout(); } } } }
No comments:
Post a Comment