Sunday, 30 July 2017
Sunday, 26 February 2017
OIM API - Stand Alone Code to Manual Complete Failed Process Task.
To execute below code you have to add following jars in classpath:
-
commons-logging.jar
-
eclipselink.jar
-
jrf-api.jar
-
oimclient.jar
-
spring.jar
-
wlfullclient.jar
Stand Alone Code:
import Thor.API.Operations.tcProvisioningOperationsIntf;
import Thor.API.tcResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import javax.security.auth.login.LoginException;
import oracle.iam.platform.OIMClient;
public class ManualCompleteProcessTask {
OIMClient oimClient = null;
//identity self service details
String username = "xelsysadm";
String password = "<password>"; //xelsysadm password
String t3url = "t3://<hostname>:<port>"; //OIM HostName and Port
String authwl_location = "<location of authwl.conf file in your local machine>"; //eg. D:\\authwl.conf
public void getOIMConnection() {
System.out.println("getOIMConnection() : Start");
//set system properties
System.setProperty("java.security.auth.login.config", authwl_location);
System.setProperty("OIM.AppServerType", "wls");
System.setProperty("APPSERVER_TYPE", "wls");
Hashtable oimenv = new Hashtable();
oimenv.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
oimenv.put(OIMClient.JAVA_NAMING_PROVIDER_URL,t3url);
oimClient = new OIMClient(oimenv);
try {
oimClient.login(username, password.toCharArray());
System.out.println("Connected");
} catch (LoginException e) {
e.printStackTrace();
}
System.out.println("getOIMConnection() : End");
}
public void setTaskCompletedManually(String resourceName, String taskName, String taskStatus) {
try {
System.out.println("setTaskCompletedManually() : Start");
tcProvisioningOperationsIntf tcOp = oimClient.getService(tcProvisioningOperationsIntf.class);
Map<String, String> filter = new HashMap<String, String>();
filter.put("Objects.Name", resourceName);
filter.put("Process Definition.Tasks.Task Name", taskName);
//Failed Task Status
String taskStaus[] = new String[] {taskStatus};
tcResultSet trs = tcOp.findAllOpenProvisioningTasks(filter, taskStaus);
List<Map<String, Object>> taskLists = new ArrayList<Map<String, Object>>();
int rowCount = trs.getRowCount();
System.out.println("Total " + taskStatus + " Task(s) for Application Instance(" + resourceName + ") : " + trs.getRowCount());
if (rowCount > 0) {
for (int i = 0; i < rowCount; i++) {
trs.goToRow(i);
System.out.println(taskName + " Task completed manually for User : " + trs.getStringValue("Process Instance.Task Information.Target User"));
tcOp.setTasksCompletedManually(new long[] {trs.getLongValue("Process Instance.Task Details.Key")} );
}
}
System.out.println("setTaskCompletedManually() : End");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
ManualCompleteProcessTask manualCompleteProcessTask = new ManualCompleteProcessTask();
//Get OIM Connection
manualCompleteProcessTask.getOIMConnection();
//Resource Object Name
String resourceName = "AD User";
//Failed Task Name
String taskName = "Create User";
// If you want to manual complete pending task, replace Rejected with 'Pending'
String taskStatus = "Rejected";
//Manual Complete
manualCompleteProcessTask.setTaskCompletedManually(resourceName, taskName, taskStatus);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Happy Learning!!!
OIM API - Stand Alone Code to Fetch Failed Process Task.
To execute below code you have to add following jars in classpath:
-
commons-logging.jar
-
eclipselink.jar
-
jrf-api.jar
-
oimclient.jar
-
spring.jar
-
wlfullclient.jar
Stand Alone Code:
import Thor.API.Operations.tcProvisioningOperationsIntf;
import Thor.API.tcResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import javax.security.auth.login.LoginException;
import oracle.iam.platform.OIMClient;
public class FetchFailedProcessTask {
OIMClient oimClient = null;
//identity self service details
String username = "xelsysadm";
String password = "<password>"; //xelsysadm password
String t3url = "t3://<hostname>:<port>"; //OIM HostName and Port
String authwl_location = "<location of authwl.conf file in your local machine>"; //eg. D:\\authwl.conf
public void getOIMConnection() {
System.out.println("getOIMConnection() : Start");
//set system properties
System.setProperty("java.security.auth.login.config", authwl_location);
System.setProperty("OIM.AppServerType", "wls");
System.setProperty("APPSERVER_TYPE", "wls");
Hashtable oimenv = new Hashtable();
oimenv.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
oimenv.put(OIMClient.JAVA_NAMING_PROVIDER_URL,t3url);
oimClient = new OIMClient(oimenv);
try {
oimClient.login(username, password.toCharArray());
System.out.println("Connected");
} catch (LoginException e) {
e.printStackTrace();
}
System.out.println("getOIMConnection() : End");
}
public void getOpenTasks(String resourceName, String taskName, String taskStatus) {
try {
System.out.println("getOpenTasks() : Start");
tcProvisioningOperationsIntf tcOp = oimClient.getService(tcProvisioningOperationsIntf.class);
Map<String, String> filter = new HashMap<String, String>();
filter.put("Objects.Name", resourceName);
filter.put("Process Definition.Tasks.Task Name", taskName);
//Failed Task Status
String taskStaus[] = new String[] {taskStatus};
tcResultSet trs = tcOp.findAllOpenProvisioningTasks(filter, taskStaus);
List<Map<String, Object>> taskLists = new ArrayList<Map<String, Object>>();
int rowCount = trs.getRowCount();
System.out.println("Total " + taskStatus + " Task(s) for Application Instance(" + resourceName + ") : " + trs.getRowCount());
if (rowCount > 0) {
for (int i = 0; i < rowCount; i++) {
trs.goToRow(i);
System.out.println("Process Instance.Task Information.Target User : " + trs.getStringValue("Process Instance.Task Information.Target User"));
System.out.println("Process Instance.Task Details.Key : " + trs.getLongValue("Process Instance.Task Details.Key"));
System.out.println("*****************************************************");
}
}
System.out.println("getOpenTasks() : End");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
FetchFailedProcessTask fetchFailedProcessTask = new FetchFailedProcessTask();
//Get OIM Connection
fetchFailedProcessTask.getOIMConnection();
//Resource Object Name
String resourceName = "AD User";
//Failed Task Name
String taskName = "Create User";
// If you need pending task, replace Rejected with 'Pending'
String taskStatus = "Rejected";
//Get Failed Tasks
fetchFailedProcessTask.getOpenTasks(resourceName, taskName, taskStatus);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Happy Learning!!!
OIM API - Stand Alone Code to Retry Failed Process Task.
To execute below code you have to add following jars in classpath:
-
commons-logging.jar
-
eclipselink.jar
-
jrf-api.jar
-
oimclient.jar
-
spring.jar
-
wlfullclient.jar
Stand Alone Code:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import Thor.API.tcResultSet;
import java.util.List;
import java.util.Map;
import Thor.API.Operations.tcProvisioningOperationsIntf;
import javax.security.auth.login.LoginException;
import oracle.iam.platform.OIMClient;
public class RetryProcessTask {
OIMClient oimClient = null;
//identity self service details
String username = "xelsysadm";
String password = "<password>"; //xelsysadm password
String t3url = "t3://<hostname>:<port>"; //OIM HostName and Port
String authwl_location = "<location of authwl.conf file in your local machine>"; //eg. D:\\authwl.conf
public void getOIMConnection() {
System.out.println("getOIMConnection() : Start");
//set system properties
System.setProperty("java.security.auth.login.config", authwl_location);
System.setProperty("OIM.AppServerType", "wls");
System.setProperty("APPSERVER_TYPE", "wls");
Hashtable oimenv = new Hashtable();
oimenv.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
oimenv.put(OIMClient.JAVA_NAMING_PROVIDER_URL,t3url);
oimClient = new OIMClient(oimenv);
try {
oimClient.login(username, password.toCharArray());
System.out.println("Connected");
} catch (LoginException e) {
e.printStackTrace();
}
System.out.println("getOIMConnection() : End");
}
public void retryTask(String resourceName, String taskName, String taskStatus) {
try {
System.out.println("retryTask() : Start");
tcProvisioningOperationsIntf tcOp = oimClient.getService(tcProvisioningOperationsIntf.class);
Map<String, String> filter = new HashMap<String, String>();
filter.put("Objects.Name", resourceName);
filter.put("Process Definition.Tasks.Task Name", taskName);
//Failed Task Status
String taskStaus[] = new String[] {taskStatus};
tcResultSet trs = tcOp.findAllOpenProvisioningTasks(filter, taskStaus);
List<Map<String, Object>> taskLists = new ArrayList<Map<String, Object>>();
int rowCount = trs.getRowCount();
System.out.println("Total " + taskStatus + " Task(s) for Application Instance(" + resourceName + ") : " + trs.getRowCount());
if (rowCount > 0) {
for (int i = 0; i < rowCount; i++) {
trs.goToRow(i);
System.out.println(taskName + " Task retried for User : " + trs.getStringValue("Process Instance.Task Information.Target User"));
tcOp.retryTask(trs.getLongValue("Process Instance.Task Details.Key"));
}
}
System.out.println("retryTask() : End");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
RetryProcessTask retryProcessTask = new RetryProcessTask();
//Get OIM Connection
retryProcessTask.getOIMConnection();
//Resource Object Name
String resourceName = "AD User";
//Failed Task Name
String taskName = "Create User";
// If you need pending task, replace Rejected with 'Pending'
String taskStatus = "Rejected";
//Retry Failed Task
retryProcessTask.retryTask(resourceName, taskName, taskStatus);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Happy Learning!!!
SOA Composite - Read Credentials from the Credential Store in Java Embedding.
Login to Oracle Enterprise Manager Console (http://<hostname>:7001/em).
Expand WebLogic Domain, right click on the name of your domain, go to Security, and then click on Credentials.
You can read keys to existing map or create a new map with new keys. Each key can store credentials. For this example I am using existing map "oracle.wsm.security" and key "OIMAdmin".
Use Case: Read Credential from the Credentials Store in Java Embedding.
Use below code in Java Embedding to read xelsysadm credential and get OIM Client handle.
To execute below code you have to add following jars in <Application_Name><Project_Name>\SCA-INF\lib:
- jps-api.jar
- jps-manifest.jar
- oimclient.jar
String username = null, password = null;
String t3url = "t3://<hostname>:<port>"; //OIM host name and port
String credentialStoreProvider = "oracle.wsm.security"; //Map name
String OIMAdminName = "OIMAdmin"; //Key name
try {
//read xelsysadm credential from credential store
oracle.security.jps.JpsContextFactory jpsCtxFactory = oracle.security.jps.JpsContextFactory.getContextFactory();
oracle.security.jps.JpsContext jpsCtx = jpsCtxFactory.getContext();
oracle.security.jps.service.credstore.CredentialStore credStore = jpsCtx.getServiceInstance(oracle.security.jps.service.credstore.CredentialStore.class);
oracle.security.jps.service.credstore.PasswordCredential cred = (oracle.security.jps.service.credstore.PasswordCredential)credStore.getCredential(credentialStoreProvider,OIMAdminName);
if (cred != null) {
username = cred.getName();
password = String.valueOf(cred.getPassword());
} else {
System.out.println("Credential not found");
}
System.out.println("Username : " + username);
System.out.println("Password : " + password);
//get OIMClient Handle
java.util.Hashtable env = new java.util.Hashtable();
env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_PROVIDER_URL,t3url);
oracle.iam.platform.OIMClient client = new oracle.iam.platform.OIMClient(env);
client.login(username, password.toCharArray());
System.out.println("Connected, OIMClient Handle : " + client);
} catch (Exception e) {
e.printStackTrace();
}
Happy Learning!!!
Subscribe to:
Posts (Atom)




