ERR_403_NOT_AUTHORIZED happens with Mashery when your authentication is not proper. I can mean that your key/secret is not correct, or your oAuth2 token is expired, or your SHA256/MD5 signatures are not proper.
Mashery-Error-Code ,Value : ERR_403_NOT_AUTHORIZED normally doesn't happen when an IP is blocked.
In this case, I think the issue is beacuse you use System.currentTimeMillis() / 1000.
Instead of that, can you try Math.round(new java.util.Date().getTime() / 1000)
org.apache.commons.codec.digest.DigestUtils.sha256Hex("apiKey" + "sharedSecret" + Math.round(new java.util.Date().getTime() / 1000))
If this didn't work, can you check if there is another header X-Error-Detail-Header, if yes what is it value ?