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();
}
}

No comments:

Post a Comment