sailpoint-oss / powershell-sdk

PowerShell Module for accessing SailPoint IdentityNow APIs
https://developer.sailpoint.com/
MIT License
21 stars 15 forks source link

Invoke-PaginateSearch does not return accented characters correctly #96

Open bradgrutsch opened 5 days ago

bradgrutsch commented 5 days ago

Setup: Powershell SDK 1.4.4 connected to a tenant with identities with accented characters in their name

Steps to Reproduce:

Run small sample script that calls Invoke-PaginateSearch, queries for the identities with accented characters, and returns the firstname & lastname fields

Expected Results: The cmdlet should run and return the identities names with accented characters

Actual Results: The cmdlet runs and returns the identities with the accented characters replaced with '???' characters.

Comments: This is similar to an existing issue #92, but the linked solution in issue #92 (content-type headers are getting a charset=utf-8 parameter) was not the underlying cause for this issue with Invoke-PaginateSearch.

This issue appears to be caused when the $Response is passed as a parameter to the DeserializeResponse function, the underlying toString() call on the $Response object type must have an incorrect encoding. I have fixed this by changing line 214 in ..\PowerShell\Modules\PSSailpoint.V3\1.4.4\Private\ApiClient.ps1 from

Response = DeserializeResponse -Response $Response -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]

to:

Response = DeserializeResponse -Response $Response.Content -ReturnType $ReturnType -ContentTypes $Response.Headers["Content-Type"]