Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

REST + Access Provisioning is failing due to Spaces in Role Name

nikhil
New Contributor III
New Contributor III

Hi,

I'm working on a REST based integration where user provisioning / de-provisioning is working as expected.

When it comes to access provisioning / de-provisioning, I'm facing a bit of a challenge, given the nature of the entitlements.

Target Roles are reconciled as entitlements within SIGA. These roles have "spaces" between their names and the APIs existing for provisioning / deprovisioning are as follows:

Grant Access: https://URL.com/data/v19_10/roles/{{ROLE_NAME}}/users/{{USER_EMAIL}}, Call -> PUT

Revoke Access: https://URL.com/data/v19_10/roles/{{ROLE_NAME}}/users/{{USER_EMAIL}}, Call -> DELETE

ROLE_NAME is being retrieved as entitlementValue.entitlementID

USER_EMAIL is being retrieved from user.email

Values are populating just fine in the URL, however, since both these attributes are part of the URL, hence, due to the spaces in the ROLE_NAME, Saviynt fails to treat the retrieved value as a compete String and errors out at the first occurrence of the space within the URL.

I've tried adding %20 / double quotes ("") / single quotes ('') but it is of no help as the API expects the value as https://URL.com/data/v19_10/roles/A B C/users/abc.cominstead of https://URL.com/data/v19_10/roles/'A B C'/users/abc.com ORhttps://URL.com/data/v19_10/roles/"A B C"/users/abc.com ORhttps://URL.com/data/v19_10/roles/A%20B%20C/users/abc.com

nikhil_0-1710502214616.png

Regards,

Nikhil

1 REPLY 1

nikhil
New Contributor III
New Contributor III

This is resolved. It seems the API was behaving inconsistently. replacing with %20 works.

"url": "https://URL.com/v19_10/roles/${entitlementValue.entitlementID.toString().replace(' ','%20')}/users/${user.email}",