Showing posts with label Web Service. Show all posts
Showing posts with label Web Service. Show all posts

Friday, February 16, 2024

Sample Before Rule

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.commons.logging.Log;

import org.apache.log4j.Logger;

import sailpoint.api.SailPointContext;

import sailpoint.connectorDependencies.EndPoint;

import sailpoint.object.Custom;

import sailpoint.object.ProvisioningPlan;

import sailpoint.object.ProvisioningPlan.AccountRequest;

import sailpoint.object.ProvisioningPlan.AttributeRequest;

import sailpoint.tools.Util;

import connector.common.JsonUtil;


String roleType = "";

String roleId = "";

List<String> securityGroup = new ArrayList<String>();

String secretAccountIndicator = "";

String phone = null;


String bcomSecGroupReqType = "";

List<String> bcomSecurityGroup = new ArrayList<String>();

List<String> ipccRoleId = new ArrayList<String>();

String ipccPhone = "";

String roleChangeReqType = "";

List<String> roleChangeRoleID = new ArrayList<String>();


String primasRole = "";

String primasPhone = "";


String secAccIndicator = "";

String bcomAccSecretAccountIndicator = "";


Custom custom = null;

AttributeRequest attributeRequest = null;

Map<String, Object> formMap = new HashMap<String, Object>();

List<AccountRequest> accountRequests = null;


custom = context.getObjectByName(Custom.class, "Mighty - Payload Details");


Map body = requestEndPoint.getBody();

String jsonBody = body.get("jsonBody").toString().trim();

log.error("jsonBody : " + jsonBody);


Map jsonMap = JsonUtil.toMap(jsonBody);

log.error("jsonMap : " + jsonMap);


accountRequests = provisioningPlan.getAccountRequests();

log.error("accountRequests : " + accountRequests);


for (AccountRequest accountRequest : accountRequests) {

if (Util.isNotNullOrEmpty(accountRequest.getApplicationName())

&& accountRequest.getApplicationName().toString().trim().equalsIgnoreCase("BCOM")) {


formMap = provisioningPlan.getArguments().getMap();

log.error("formMap : " + formMap);


if (accountRequest.getAttributeRequest("rolesIds") != null) {

attributeRequest = accountRequest.getAttributeRequest("rolesIds");

log.error("attributeRequest : " + attributeRequest);

if (attributeRequest.getName().equalsIgnoreCase("IPCC")) {

if (formMap.get("Role ID") != null) {

ipccRoleId = (List<String>) formMap.get("Role ID");

log.error("ipccRoleId : " + ipccRoleId);

}

if (formMap.get("Phone") != null) {

phone = formMap.get("Phone").toString().trim();

log.error("phone : " + phone);

}

if (Util.isNotNullOrEmpty(phone)) {

jsonMap.put("phoneNo", phone);

}

// To - Do

// Map postBodyMap = (Map) requestEndPoint.getBody();


}

if (attributeRequest.getName().equalsIgnoreCase("IPCC update Roles")) {

if (formMap.get("Request Type") != null) {

roleChangeReqType = formMap.get("Request Type").toString().trim();

log.error("roleChangeReqType : " + roleChangeReqType);

}

if (formMap.get("Role ID") != null) {

roleChangeRoleID = (List<String>) formMap.get("Role ID");

log.error("roleChangeRoleID : " + roleChangeRoleID);

}


// To - Do

}

if (attributeRequest.getName().equalsIgnoreCase("BCOM update Security Group")) {


if (formMap.get("Request Type") != null) {

bcomSecGroupReqType = formMap.get("Request Type").toString();

log.error("bcomSecGroupReqType : " + bcomSecGroupReqType);

}

if (formMap.get("Security Group") != null) {

bcomSecurityGroup = (List<String>) formMap.get("Security Group");

log.error("bcomSecurityGroup : " + bcomSecurityGroup);

}


// To - Do

}

if (attributeRequest.getName().equalsIgnoreCase("BCOM")) {


if (formMap.get("Role ID") != null) {

roleId = formMap.get("Role ID").toString();

}

if (formMap.get("Security Group") != null) {

securityGroup = (List) formMap.get("Security Group");

}

if (formMap.get("Secret Account Indicator") != null) {

secretAccountIndicator = formMap.get("Secret Account Indicator").toString().trim();

}

if (formMap.get("Phone") != null) {

phone = formMap.get("Phone").toString().trim();

}


// To - Do


}

if (attributeRequest.getName().equalsIgnoreCase("PRIMAS")) {

if (formMap.get("Role ID") != null) {

primasRole = formMap.get("Role ID").toString();

if (formMap.get("PRIMAS") != null) {

roleType = custom.getString("PRIMAS");

log.error("roleType : " + roleType);

}

}

if (formMap.get("Phone") != null) {

primasPhone = formMap.get("Phone").toString().trim();

log.error("primasPhone : " + primasPhone);

}

// To - Do


if (Util.isNotNullOrEmpty(primasPhone)) {

jsonMap.put("phoneNo", primasPhone);

}

}

if (attributeRequest.getName().equalsIgnoreCase("BCOM update Account Indicator")) {

if (formMap.get("Secret Account Indicator") != null) {

secretAccountIndicator = formMap.get("Secret Account Indicator").toString().trim();

log.error("secretAccountIndicator : " + secretAccountIndicator);


if (secretAccountIndicator.equalsIgnoreCase("Normal Account")) {

secAccIndicator = custom.getString("Normal Account");

log.error("secAccIndicator : " + secretAccountIndicator);

}

if (secretAccountIndicator.equalsIgnoreCase("Confidential and Normal Account")) {

secAccIndicator = custom.getString("Confidential and Normal Account");

log.error("secAccIndicator : " + secretAccountIndicator);

}

}

// To - Do

if (Util.isNotNullOrEmpty(secAccIndicator)) {

jsonMap.put("secretAccountIndicator", secAccIndicator);

}

}

}

}

}


Thursday, February 15, 2024

Before Rule for JSON body update

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.log4j.Logger;

import openconnector.JsonUtil;

import sailpoint.api.SailPointContext;

import sailpoint.connectorDependencies.EndPoint;

import sailpoint.object.Attributes;

import sailpoint.object.Identity;

import sailpoint.object.ProvisioningPlan;

import sailpoint.object.ProvisioningPlan.AccountRequest;

import sailpoint.object.ProvisioningPlan.AttributeRequest;

import sailpoint.tools.Util;

public class RoleCreation {

static SailPointContext context = null;

static Logger logger = null;

static ProvisioningPlan provisioningPlan = null;

static EndPoint requestEndPoint = null;

public static void main(String[] args) {

String appName = null;

String roleId = "";

List<String> securityGroup = new ArrayList<String>();

String secretAccountIndicator = "";

String phone = null;

String ecomSecGroupReqType = "";

List<String> ecomSecurityGroup = new ArrayList<String>();

List<String> ipccRoleId = new ArrayList<String>();

String ipccPhone = "";

String roleChangeReqType = "";

List<String> roleChangeRoleID = new ArrayList<String>();

String primasRole = "";

String primasPhone = "";

String ecomAccSecretAccountIndicator = "";

AttributeRequest attributeRequest = null;

Map<String, Object> formMap = new HashMap<String, Object>();

List<AccountRequest> accountRequests = null;

accountRequests = provisioningPlan.getAccountRequests();

for (AccountRequest accountRequest : accountRequests) {


if (Util.isNotNullOrEmpty(accountRequest.getApplicationName())

&& accountRequest.getApplicationName().toString().trim().equalsIgnoreCase("ECOM")) {


appName = accountRequest.getApplicationName().toString().trim();

formMap = provisioningPlan.getArguments().getMap();

if (accountRequest.getOperation().equals(AccountRequest.Operation.Create)) {

if (accountRequest.getAttributeRequest("rolesIds") != null) {

attributeRequest = accountRequest.getAttributeRequest("rolesIds");


if (attributeRequest.getName().equalsIgnoreCase("ECOM")) {


if (formMap.get("Role ID") != null) {

String roleID = formMap.get("Role ID").toString();

}

if (formMap.get("Security Group") != null) {

securityGroup = (List) formMap.get("Security Group");

}

if (formMap.get("Secret Account Indicator") != null) {

secretAccountIndicator = formMap.get("Secret Account Indicator").toString().trim();

}

if (formMap.get("Phone") != null) {

phone = formMap.get("Phone").toString().trim();

}


}

if (attributeRequest.getName().equalsIgnoreCase("ECOM Security Group")) {


if (formMap.get("Request Type") != null) {

String roleID = formMap.get("Request Type").toString();

}

if (formMap.get("Security Group") != null) {

ecomSecurityGroup = (List<String>) formMap.get("Security Group");

}

}

if (attributeRequest.getName().equalsIgnoreCase("IPCC")) {

if (formMap.get("Role ID") != null) {

ipccRoleId = (List<String>) formMap.get("Role ID");

}

if (formMap.get("Phone") != null) {

phone = formMap.get("Phone").toString().trim();

}

}

if (attributeRequest.getName().equalsIgnoreCase("IPCCRoleChange")) {

if (formMap.get("Request Type") != null) {

roleChangeReqType = formMap.get("Request Type").toString().trim();

}

if (formMap.get("Role ID") != null) {

roleChangeRoleID = (List<String>) formMap.get("Role ID");

}

}

if (attributeRequest.getName().equalsIgnoreCase("PRIMAS")) {

if (formMap.get("Role ID") != null) {

primasRole = formMap.get("Role ID").toString();

}

if (formMap.get("Phone") != null) {

primasPhone = formMap.get("Phone").toString().trim();

}

}

if (attributeRequest.getName().equalsIgnoreCase("ECOM Account Indicator")) {

if (formMap.get("Secret Account Indicator") != null) {

secretAccountIndicator = formMap.get("Secret Account Indicator").toString().trim();

}

}

}

if (formMap.size() > 0) {

if (formMap.get("Role ID") != null) {

}

Map body = requestEndPoint.getBody();

String jsonBody = (String) body.get("jsonBody");

logger.info("Rule - Modify Body: running");

}

}

}

}

}

}

Wednesday, February 14, 2024

Retry enable

 <entry key="retryableErrors"> 

 <value> 

  <List> 

   <String>Server is not operational</String> 

  </List> 

 </value>

</entry>

Test after Rule

log.error("processedResponseObject : " + processedResponseObject); 

log.error("rawResponseObject: " + rawResponseObject);

Wednesday, February 7, 2024

Payload Configuration in IIQ

Payload :

{

"empID": "12345",

"firstName": "ABC",

"lastName": "XYZ",

"email": "abc@gmail.com"

"roles":[

{

"roleID": "123",

"roleName":""MighytRole

}

],

region:"Asia"

}

Aggregation:

Left-side fields should be exactly matched with schema fields.

Right-side fields should be exactly matched with payload or application fields.

Create / Update Account:

Left-side fields should be exactly matched with payload fields.

Right-side fields should be exactly matched with provisioning policy fields

Methods:

Create Account: POST

Update Account: PUT

Disable Account: PUT

Enable Account: GET

Delete Account: DELETE

Get Account: GET

Payload Mapping Template

Payload Mapping:




Postman

Headers:

Content-Type : application/json

Accept : text/json


Host URL / Base URL: https://blogger.net/

Path URL / Context URL: / mighty

Response = > Successful Response Code : 2** 


Payload / Json Body:

{

"empID": "12345",

"firstName": "ABC",

"lastName": "XYZ",

"email": "abc@gmail.com"

"roles":[

{

"roleID": "123",

"roleName":""MighytRole

}

],

region:"Asia"

}


Before Operation Rule

Troubleshooting purpose:

log.error("requestEndPoint : " + requestEndPoint ); 

log.error("requestEndPoint : "+requestEndPoint.getBody());

requestEndPoint.setFullUrl(requestEndPoint.getFullUrl().replaceAll("40", "@")); 

// updating the endpoint URL

Saturday, January 7, 2023

Pagination

 Web Service:

WebService connector supports pagination for Account Aggregation and Group Aggregation.

There are two ways to implement pagination for WebService connector:

1. Paging Tab

2. Before Rule (OR) After Rule


Ex 1: fullUrl = https://mightypedia.com/xyz/api/employee?pageIndex=1

Json Response:

{

"totalcount": 666,

"pageSize": 100,

"pageIndex":1,

"startAt":1,

"records":[

{

.......

.......

.......

}

]

}

Paging Tab:

TERMINATE_IF $response.startAt == 0

$offset$ = $response.pageIndex$ + 1

$endpoint.fullUrl$ = $application.baseUrl$ + $endpoint.relativeUrl$ + ?pageIndex=+ $offset$

IAM, IGA & Identity Security

IAM sets up the employee's account so they can log in and access the application with their credentials. IGA makes sure that access requ...

Featured Articles