I am connecting to Sailpoint IdentityNow APIs and I can see response for get identity API /beta/identities?filters=alias eq “123456” in postman.
I am updating existing spring boot project to replace the deprecated API with above endpoint. But I get 400.
I print the URL for debugging and it looks correct. I even used the same URL I have in spring boot code in postman and I get the response in postman. But spring boot code is returning 400.
See error in logs below.
2024-03-22 15:39:51,991 DEBUG com.mycompany.contractormgmt.service.IDNService - IDN User details URL: [Preformatted text](https://mycompany-sb.api.identitynow.com/beta/identities?filters=alias%20eq%20%22abcxyz%22)
2024-03-22 15:39:52,093 DEBUG com.mycompany.contractormgmt.service.IDNService - IDNService :: getUserDetailsFromIDN :: HttpStatusCodeException = org.springframework.web.client.HttpClientErrorException$BadRequest: 400 :
“{“detailCode”:“400.1 Bad request content”,“trackingId”:“96f48240c65042ba95d963814350cdf9”,“messages”:[{“locale”:“en-US”,“localeOrigin”:“DEFAULT”,“text”:“The request was syntactically correct but its content is semantically invalid.”},{“locale”:“und”,“localeOrigin”:“REQUEST”,“text”:“The request was syntactically correct but its content is semantically invalid.”}],“causes”:}”
Here is my code snippet
String authHeader = "Bearer " + authService.getIDNAccessToken();
logger.trace("IDNService :: getUserDetailsFromIDN :: Bearer authHeader = " + authHeader);
HttpHeaders headers = new HttpHeaders();
headers.add(ContractorManagementConstants.AUTHORIZATION, authHeader);
headers.add(ContractorManagementConstants.ACCEPT, MediaType.APPLICATION_JSON_VALUE);
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(config.getIdn().getUserDetails().getUrl())
.queryParam("filters", "alias eq \"" + userWWID + "\"");
logger.debug("IDN User details URL:" +builder.toUriString());
HttpEntity<String> entity = new HttpEntity<>(headers);
logger.debug("Headers : " +entity.getHeaders());
RestTemplate restTemplate = new RestTemplate();
try {
ResponseEntity<IDNResponse> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET, entity,
IDNResponse.class);
logger.debug("IDNService :: getUserDetailsFromIDN :: response = " + response);
