Rest API returns 200 from postman but 400 in springboot project

29 Views Asked by At

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”:}”

enter image description here

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);
0

There are 0 best solutions below