public String getAuthorizationHeader(String dataToSign) { String authHeather = "Signature keyId=\"" + Config.getApiKey() + "\",algorithm=\"hmac-sha256\",headers=\"(request-target) host date\",signature=\"" + generateAuthHeaderHash(dataToSign) + "\""; return authHeather; } public static String generateAuthHeaderHash(String dataToSign) { String hash; try { Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new SecretKeySpec(Config.getSecret().getBytes(), "HmacSHA256"); sha256_HMAC.init(secret_key); hash = Base64.encodeBase64String(sha256_HMAC.doFinal(dataToSign.getBytes())); } catch (Exception e) { logger.error(e.getMessage()); hash = null; } return hash; } public String getSkuldGroupId() { String gatewayurl = "/v1/"; String gatewayhost = "rms-world-check-one-api-pilot.thomsonreuters.com"; Date now = new Date(); DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH); df.setTimeZone(TimeZone.getTimeZone("GMT")); String date = df.format(now); String dataToSign = "(request-target): get " + gatewayurl + "groups\n" + "host: " + gatewayhost + "\n" + "date: " + date; String authHeader = getAuthorizationHeader(dataToSign); ResponseEntity responseEntity = sanctionsRepo.getSkuldGroupId(authHeader); return null; }