public void parseJWT(String jwt) { try { Claims claims = Jwts.parser() .setSigningKey( DatatypeConverter.parseBase64Binary(APPKEY_SECRET)) // apiKey.getSecret() .parseClaimsJws(jwt) .getBody(); System.out.println("ID: " + claims.getId()); System.out.println("Subject: " + claims.getSubject()); System.out.println("Issuer: " + claims.getIssuer()); System.out.println("Expiration: " + claims.getExpiration()); } catch (SignatureException e) { // throw new ServiceException("Token has been tampered", ErrorCode.TOKEN_TAMPERED); throw buildException(Response.Status.BAD_REQUEST, "403", "Token has been tampered"); } catch (ExpiredJwtException e) { // throw new ServiceException("Token expired", ErrorCode.TOKEN_EXPIRED); throw buildException(Response.Status.REQUEST_TIMEOUT, "500", "Token expired"); } }