Friday 20 January 2017

SCIM REST Web Service - Lock/Unlock User in OIM11gR2-PS3

Lock/Unlock User in OIM through SCIM/REST Web Services-
---------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
==================================================


public class OIMUserManagementBySCIM
{
/***************
*
*
Operation-1: Lock User Method
*
*
****************/
public void lockUser()
{
       //1. Define URL with User Key
org.apache.commons.httpclient.methods.PostMethod m = new org.apache.commons.httpclient.methods.PostMethod("http://oimhost:14000/idaas/im/scim/v1/Users/13319")
{
@Override
//2. Calling PATCH Operation
public String getName()
{
System.out.println(" After PATCH ");
return "PATCH";
}
};
//3. Define Authorization
System.out.println(" Passing Credential ");
String userCredentials = "xelsysadm:Password@1";
new com.sun.xml.internal.messaging.saaj.util.Base64();
String basicAuth = "Basic " + new String(com.sun.xml.internal.messaging.saaj.util.Base64.encode(userCredentials.getBytes()));
m.setRequestHeader("Authorization", basicAuth);
try
{
//4. Creating Object
org.json.JSONObject request_body = new org.json.JSONObject();
org.json.JSONArray request_body_schemas = new org.json.JSONArray();

//5. Passing SChema
request_body_schemas.put("urn:ietf:params:scim:api:messages:2.0:PatchOp");
request_body.put("schemas", request_body_schemas);  
org.json.JSONArray request_body_operation= new org.json.JSONArray();

//6. lock User
org.json.JSONObject request_body_lockuser= new org.json.JSONObject();
org.json.JSONObject request_body_lockuservalue= new org.json.JSONObject();
request_body_lockuser.put("op", "replace");
request_body_lockuser.put("path", "urn:ietf:params:scim:schemas:extension:oracle:2.0:IDM:User:locked");
request_body_lockuservalue.put("value", 1);
//request_body_lockuservalue.put("duration", 360);//duration not mandatory
request_body_lockuser.put("value", request_body_lockuservalue);
request_body_operation.put(request_body_lockuser);

request_body.put("Operations", request_body_operation);
System.out.println("JSON Object: "+request_body);

//6. Sending Data in OIM
   m.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(request_body.toString(), "application/scim+json", "UTF-8"));
   org.apache.commons.httpclient.HttpClient c = new org.apache.commons.httpclient.HttpClient();
int sc = c.executeMethod(m);
System.out.println("PATCH call returned a Lock User Status code ::" + sc);

}
catch (java.net.ProtocolException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.net.MalformedURLException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.io.IOException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (org.json.JSONException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
}

/***************
*
*
Operation-2: Unlock User Method
*
*
****************/
public void unlockUser()
{
       //1. Define URL with User Key
org.apache.commons.httpclient.methods.PostMethod m = new org.apache.commons.httpclient.methods.PostMethod("http://oimhost:14000/idaas/im/scim/v1/Users/13319")
{
@Override
//2. Calling PATCH Operation
public String getName()
{
System.out.println(" After PATCH ");
return "PATCH";
}
};
//3. Define Authorization
System.out.println(" Passing Credential ");
String userCredentials = "xelsysadm:Password@1";
new com.sun.xml.internal.messaging.saaj.util.Base64();
String basicAuth = "Basic " + new String(com.sun.xml.internal.messaging.saaj.util.Base64.encode(userCredentials.getBytes()));
m.setRequestHeader("Authorization", basicAuth);
try
{
//4. Creating Object
org.json.JSONObject request_body = new org.json.JSONObject();
org.json.JSONArray request_body_schemas = new org.json.JSONArray();

//5. Passing SChema
request_body_schemas.put("urn:ietf:params:scim:api:messages:2.0:PatchOp");
request_body.put("schemas", request_body_schemas);  
org.json.JSONArray request_body_operation= new org.json.JSONArray();

//6. unlock User
org.json.JSONObject request_body_unlcokuser= new org.json.JSONObject();
org.json.JSONObject request_body_unlockuservalue= new org.json.JSONObject();
request_body_unlcokuser.put("op", "replace");
request_body_unlcokuser.put("path", "urn:ietf:params:scim:schemas:extension:oracle:2.0:IDM:User:locked");
request_body_unlockuservalue.put("value", 0);
request_body_unlcokuser.put("value", request_body_unlockuservalue);
request_body_operation.put(request_body_unlcokuser);

request_body.put("Operations", request_body_operation);
System.out.println("JSON Object: "+request_body);

//7. Sending Data in OIM
   m.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(request_body.toString(), "application/scim+json", "UTF-8"));
   org.apache.commons.httpclient.HttpClient c = new org.apache.commons.httpclient.HttpClient();
int sc = c.executeMethod(m);
System.out.println("PATCH call returned a Unlock User Status code ::" + sc);

}
catch (java.net.ProtocolException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.net.MalformedURLException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.io.IOException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (org.json.JSONException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
}

public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.lockUser();
 // usermgmt.unlockUser();
}
}

Wednesday 11 January 2017

SCIM REST Web Service - Delete User in OIM11gR2-PS3

Delete User in OIM through SCIM/Rest Services-
-----------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
==================================================

package oracle.iam.webservice;

public class OIMUserManagementBySCIM
{
/*
Operation-5: Delete User Method
*/
public void deleteUser()
{
  //1. Define URL
java.net.URL url = null;
 
  //2. Passing Authorization
  String userName="xelsysadm";
  String password="Admin@DEV1";
  String authString = userName + ":" + password;
  String authStringEnc = "Basic " + new String(new Decoder.BASE64Encoder().encode(authString.getBytes()));
  //System.out.println("Base64 encoded auth string: " + authStringEnc);
 
  try {
  //3. Passing URL with User Key in URL
  url = new java.net.URL("http://oimhost:14000/idaas/im/scim/v1/Users/13336");
 
  //4. parameters for connection
  java.net.HttpURLConnection connection = null;
  connection = (java.net.HttpURLConnection) url.openConnection();
  connection.setRequestMethod("DELETE");
  connection.setRequestProperty("Content-Type", "application/scim+json");
  connection.setRequestProperty("Authorization", authStringEnc);
  connection.setConnectTimeout(5000);
  connection.setDoOutput(true);
  connection.setReadTimeout(5000);
 
  //7. Getting output
  java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));
  //System.out.println("Buffered input is"+in);
  System.out.println("Response code from server is ::"+connection.getResponseCode());
  System.out.println("User Deleted successfully");
  in.close();
 
 }
  catch (java.net.ProtocolException e)
  {
// TODO Auto-generated catch block
  e.printStackTrace();
  }
  catch (java.net.MalformedURLException e)
  {
// TODO Auto-generated catch block
  e.printStackTrace();
  }
  catch (java.io.IOException e)
  {
// TODO Auto-generated catch block
  e.printStackTrace();
 }
}
public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.deleteUser();
}
}

SCIM REST Web Service - Disable User in OIM11gR2-PS3

Disable User in OIM through SCIM/Rest Services-
-----------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
===============================================


package oracle.iam.webservice;

public class OIMUserManagementBySCIM
{
/*
Operation-4: Disable User Method
*/
public void disableUser()
{
        //1. Define URL with User Key
org.apache.commons.httpclient.methods.PostMethod m = new org.apache.commons.httpclient.methods.PostMethod("http://oimhost:14000/idaas/im/scim/v1/Users/13337")
{
@Override
//2. Calling PATCH Operation
public String getName()
{
System.out.println(" After PATCH ");
return "PATCH";
}
};
//3. Define Authorization
System.out.println(" Passing Credential ");
String userCredentials = "xelsysadm:password";
new com.sun.xml.internal.messaging.saaj.util.Base64();
String basicAuth = "Basic " + new String(com.sun.xml.internal.messaging.saaj.util.Base64.encode(userCredentials.getBytes()));
m.setRequestHeader("Authorization", basicAuth);
try
{
//4. Creating Object
org.json.JSONObject request_body = new org.json.JSONObject();
org.json.JSONArray request_body_schemas = new org.json.JSONArray();

//5. Passing SChema
request_body_schemas.put("urn:ietf:params:scim:api:messages:2.0:PatchOp");
request_body.put("schemas", request_body_schemas);  
org.json.JSONArray request_body_operation= new org.json.JSONArray();

//6. Enable User
org.json.JSONObject request_body_disable= new org.json.JSONObject();
request_body_disable.put("op", "replace");
request_body_disable.put("path", "urn:ietf:params:scim:schemas:core:2.0:User:active");
request_body_disable.put("value", false);
request_body_operation.put(request_body_disable);

request_body.put("Operations", request_body_operation);
System.out.println("JSON Object: "+request_body);

//6. Sending Data in OIM
   m.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(request_body.toString(), "application/scim+json", "UTF-8"));
   org.apache.commons.httpclient.HttpClient c = new org.apache.commons.httpclient.HttpClient();
int sc = c.executeMethod(m);
System.out.println("PATCH call returned a Disable status code ::" + sc);

}
catch (java.net.ProtocolException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.net.MalformedURLException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.io.IOException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (org.json.JSONException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
}

public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.disableUser();
}
}

SCIM REST Web Service - Enable User in OIM11gR2-PS3

Enable User in OIM through SCIM/Rest Services-
-----------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
=================================================

package oracle.iam.webservice;

public class OIMUserManagementBySCIM
{
/*
Operation-3: Enable User Method
*/
public void enableUser()
{
       //1. Define URL with User Key
org.apache.commons.httpclient.methods.PostMethod m = new org.apache.commons.httpclient.methods.PostMethod("http://oimhost:14000/idaas/im/scim/v1/Users/13337")
{
@Override
//2. Calling PATCH Operation
public String getName()
{
System.out.println(" After PATCH ");
return "PATCH";
}
};
//3. Define Authorization
System.out.println(" Passing Credential ");
String userCredentials = "xelsysadm:Admin@DEV1";
new com.sun.xml.internal.messaging.saaj.util.Base64();
String basicAuth = "Basic " + new String(com.sun.xml.internal.messaging.saaj.util.Base64.encode(userCredentials.getBytes()));
m.setRequestHeader("Authorization", basicAuth);
try
{
//4. Creating Object
org.json.JSONObject request_body = new org.json.JSONObject();
org.json.JSONArray request_body_schemas = new org.json.JSONArray();

//5. Passing SChema
request_body_schemas.put("urn:ietf:params:scim:api:messages:2.0:PatchOp");
request_body.put("schemas", request_body_schemas);  
org.json.JSONArray request_body_operation= new org.json.JSONArray();

//6. Enable User
org.json.JSONObject request_body_enable= new org.json.JSONObject();
request_body_enable.put("op", "replace");
request_body_enable.put("path", "urn:ietf:params:scim:schemas:core:2.0:User:active");
request_body_enable.put("value", true);
request_body_operation.put(request_body_enable);

request_body.put("Operations", request_body_operation);
System.out.println("JSON Object: "+request_body);

//7. Sending Data in OIM
   m.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(request_body.toString(), "application/scim+json", "UTF-8"));
   org.apache.commons.httpclient.HttpClient c = new org.apache.commons.httpclient.HttpClient();
int sc = c.executeMethod(m);
System.out.println("PATCH call returned a Enable status code ::" + sc);

}
catch (java.net.ProtocolException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.net.MalformedURLException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.io.IOException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (org.json.JSONException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
}

public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.enableUser();
}
}

SCIM REST Web Service - Create User in OIM11gR2-PS3

Create User in OIM through SCIM/Rest Services-
-----------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
=================================================

package oracle.iam.webservice;

public class OIMUserManagementBySCIM
{
/*
Operation-1: Create User Method
*/
public void createUser()
{
  try
  {
  //1. Define URL
  java.net.URL url = null;

  //2. Define Authorization
  System.out.println(" Passing Credential ");
  String name = "xelsysadm";
  String password = "password";
  String authString = name + ":" + password;
  String authStringEnc = "Basic "+ new String(new Decoder.BASE64Encoder().encode(authString.getBytes()));
  //System.out.println("Base64 encoded auth string: " + authStringEnc);

  //3. Creating object.
  org.json.JSONObject request_body = new org.json.JSONObject();
  org.json.JSONArray request_body_schemas= new org.json.JSONArray();
  org.json.JSONObject request_body_nameAttribute = new org.json.JSONObject();
  org.json.JSONArray request_body_email= new org.json.JSONArray();
  org.json.JSONObject request_body_emailValue = new  org.json.JSONObject();
  org.json.JSONObject request_body_ManagerValue = new  org.json.JSONObject();
  org.json.JSONObject request_body_manager= new  org.json.JSONObject();
  org.json.JSONObject request_body_organizationValue = new  org.json.JSONObject();
  org.json.JSONObject request_body_organizationName= new  org.json.JSONObject();

  request_body_schemas.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User");
  request_body_schemas.put("urn:ietf:params:scim:schemas:core:2.0:User");
  request_body_schemas.put("urn:ietf:params:scim:schemas:extension:enterprise:2.0:User");
  request_body_schemas.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:IDM:User");
  request_body.put("schemas",request_body_schemas);

  //*******Basic Attributes********

  //obj.put("userName","");
  request_body_nameAttribute.put("familyName","Testrws03");
  request_body_nameAttribute.put("givenName","Userrws03");
  request_body_nameAttribute.put("middleName","turws03");
  request_body.put("name",request_body_nameAttribute);
  request_body.put("displayName","Testrws03 Userrws03");
  request_body.put("profileUrl","http://oimhost:14000/userName");
 
  request_body_emailValue.put("value","testrws01ervice03@test.com");
  request_body_emailValue.put("type","work");
  request_body_email.put(request_body_emailValue);
  request_body.put("emails",request_body_email);

  request_body.put("userType","Associate");
  request_body.put("title","Supervisor");
  request_body.put("employeeNumber","1100001");
  request_body.put("locale","en-US");
  request_body.put("timezone","America/Los_Angeles");

  request_body_ManagerValue.put("value", "13324");
  request_body_manager.put("manager",request_body_ManagerValue);
  request_body.put("urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",request_body_manager);

  request_body_organizationValue.put("value","6");
  request_body_organizationValue.put("$ref", "http://oimhost:14000/idaas/im/scim/v1/Organizations/6");
  request_body_organizationName.put("homeOrganization", request_body_organizationValue);
  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User",request_body_organizationName);

  //********Custom Attributes********

  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:EmployeeStatus","Active");
  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:EmailNonProd","testrws03@gmail.com");
  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:Level","30");
  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:Division","Corporate");
  request_body.put("urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:SW1_Category","S");
     
  System.out.println("JSON object is ::"+request_body);

 //5. parameters for connection
  url = new java.net.URL("http://oimhost:14000/idaas/im/scim/v1/Users");
  java.net.HttpURLConnection connection = null;
  connection = (java.net.HttpURLConnection) url.openConnection();
  connection.setRequestMethod("POST"); // For Creation put POST Operation
  connection.setRequestProperty("Content-Type", "application/scim+json");
  connection.setRequestProperty("Authorization", authStringEnc);
  connection.setConnectTimeout(5000);
  connection.setDoOutput(true);
  connection.setReadTimeout(5000);

  //7. Sending Data in OIM
  java.io.OutputStreamWriter out=null;
  out = new java.io.OutputStreamWriter(connection.getOutputStream());
  out.write(request_body.toString());
  out.close();

  //7. Getting output
  java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));
  System.out.println("Buffered input is"+in);
  System.out.println("Response code from server is ::"+connection.getResponseCode());
  System.out.println("*****User created successfully******");
  String line ="";
  while ((line = in.readLine()) != null)
  {
    System.out.println("Result is ::"+line);
  }
  in.close();

}
 catch (java.net.ProtocolException e)
 {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 catch (java.net.MalformedURLException e)
 {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 catch (java.io.IOException e)
 {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 catch (org.json.JSONException e)
 {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }

}

public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.createUser();
}
}

SCIM REST Web Service - Modify User in OIM11gR2-PS3


Modify user in OIM through SCIM/Rest Services-
-----------------------------------------------------------------------------------
Required Jar File-
java-json.jar
sun.misc.BASE64Decoder.jar
apache-httpcomponents-httpcore.jar
apache-jakarta-commons-httpclient.jar
commons-codec-1.9.jar
commons-logging.jar
commons-httpclient-3.1.jar
==================================================

package oracle.iam.webservice;

public class OIMUserManagementBySCIM
{
/*
Operation-2: Modify User Method
*/
public void modifyUser()
{
//1. Define URL with User Key
org.apache.commons.httpclient.methods.PostMethod m = new org.apache.commons.httpclient.methods.PostMethod("http://oimhost:14000/idaas/im/scim/v1/Users/13337")
{
@Override
//2. Calling PATCH Operation
public String getName()
{
System.out.println(" After PATCH ");
return "PATCH";
}
};
//3. Define Authorization
System.out.println(" Passing Credential ");
String userCredentials = "xelsysadm:Welcome@1";
new com.sun.xml.internal.messaging.saaj.util.Base64();
String basicAuth = "Basic " + new String(com.sun.xml.internal.messaging.saaj.util.Base64.encode(userCredentials.getBytes()));
m.setRequestHeader("Authorization", basicAuth);
try
{
//4. Creating Object
org.json.JSONObject request_body = new org.json.JSONObject();
org.json.JSONArray request_body_schemas = new org.json.JSONArray();

//5. Passing SChema
request_body_schemas.put("urn:ietf:params:scim:api:messages:2.0:PatchOp");
request_body.put("schemas", request_body_schemas);  
org.json.JSONArray request_body_operation= new org.json.JSONArray();

//6. Updating/Modifying Attributes
//Basic Attribute
org.json.JSONObject request_body_lastname= new org.json.JSONObject();
request_body_lastname.put("op", "replace");
request_body_lastname.put("path", "urn:ietf:params:scim:schemas:core:2.0:User:name.givenName");
request_body_lastname.put("value", "testcbs23_new");
request_body_operation.put(request_body_lastname);

org.json.JSONObject request_body_employeeNumber= new org.json.JSONObject();
request_body_employeeNumber.put("op", "replace");
request_body_employeeNumber.put("path", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber");
request_body_employeeNumber.put("value", "11123010");
request_body_operation.put(request_body_employeeNumber);

// Custom Attribute
org.json.JSONObject request_body_employeeStatus= new org.json.JSONObject();
request_body_employeeStatus.put("op", "replace");
request_body_employeeStatus.put("path", "urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:EmployeeStatus");
request_body_employeeStatus.put("value", "Active");
request_body_operation.put(request_body_employeeStatus);

org.json.JSONObject request_body_division= new org.json.JSONObject();
request_body_division.put("op", "replace");
request_body_division.put("path", "urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User:Division");
request_body_division.put("value", "CORPORATE");
request_body_operation.put(request_body_division);

request_body.put("Operations", request_body_operation);
System.out.println("JSON Object: "+request_body);

//7. Sending Data in OIM
   m.setRequestEntity(new org.apache.commons.httpclient.methods.StringRequestEntity(request_body.toString(), "application/scim+json", "UTF-8"));
   org.apache.commons.httpclient.HttpClient c = new org.apache.commons.httpclient.HttpClient();
int sc = c.executeMethod(m);
System.out.println("PATCH call returned a Modify status code ::" + sc);

}
catch (java.net.ProtocolException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.net.MalformedURLException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (java.io.IOException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
catch (org.json.JSONException e)
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
   }

public static void main(String args[])
{
OIMUserManagementBySCIM usermgmt=new OIMUserManagementBySCIM();
usermgmt.modifyUser();
}
}