如何使用Java 1.4验证JWT签名

时间:2017-05-10 15:21:28

标签: java json

我正在开发基于JDK 1.4的遗留IBM WCS电子商务应用程序。

我要求通过调用外部JSON Web密钥集(JWKS)(/。well-known / jwks.json)端点来验证JWT令牌,以检索公钥并使用验证令牌签名并检索声明。

以下是使用Java 8的代码,它提供了基于' n'的RSA公钥。并且' e'来自JSON Web Key的值。

public PublicKey getPublicKey() throws InvalidPublicKeyException {
    try {
        KeyFactory kf = KeyFactory.getInstance("RSA");
        BigInteger modulus = new BigInteger(1,Base64.decodeBase64(stringValue("n")));
        BigInteger exponent = new BigInteger(1, 
Base64.decodeBase64(stringValue("e")));
        return kf.generatePublic(new RSAPublicKeySpec(modulus, exponent));
    } catch (InvalidKeySpecException e) {
        ......
    } catch (NoSuchAlgorithmException e) {
        ......
    }
}

稍后我使用该KEY来验证签名,

Claims claims = Jwts.parser()
                .setSigningKey(getPublicKey(decodeToken(token)))
                .parseClaimsJws(token)
                .getBody();

是否有可能使用Java 1.4(或)至少使用Java 5来实现上述2个相同的功能?请指导,谢谢!

0 个答案:

没有答案