class IdToken extends OAuth2Token {

    public String getSignedToken(final PrivateKey key, final String keyId,
            final SignatureAlgorithm keyAlg) {

        return Jwts.builder().setSubject(subject)
                .setIssuedAt(Date.from(Instant.ofEpochSecond(issueTime)))
                .setExpiration(Date.from(Instant.ofEpochSecond(expiryTime)))
                .setIssuer(issuer)
                .setAudience(audience)
                .claim(CLAIM_AUTH_TIME, authTime)
                .claim(CLAIM_VERSION, version)
                .setHeaderParam(HDR_KEY_ID, keyId)
                .signWith(key, keyAlg)
                .compact();
    }

    public  IdToken();
    public  IdToken(final String token, JwtsSigningKeyResolver keyResolver);
    public  IdToken(final String token, PublicKey publicKey);

}