Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java1.4验证JWT签名_Java_Json - Fatal编程技术网

如何使用Java1.4验证JWT签名

如何使用Java1.4验证JWT签名,java,json,Java,Json,我正在开发一个基于JDK1.4的遗留IBM WCS电子商务应用程序 我需要通过调用外部JSON Web密钥集(JWKS)(/.well-known/JWKS.JSON)端点来验证JWT令牌,以检索公钥,并使用验证令牌签名和检索声明 下面是使用Java 8的代码,Java 8根据JSON Web密钥中的“n”和“e”值提供RSA公钥 public PublicKey getPublicKey() throws InvalidPublicKeyException { try {

我正在开发一个基于JDK1.4的遗留IBM WCS电子商务应用程序

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

下面是使用Java 8的代码,Java 8根据JSON Web密钥中的“n”和“e”值提供RSA公钥

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) {
        ......
    }
}
后来我用那把钥匙来验证签名

Claims claims = Jwts.parser()
                .setSigningKey(getPublicKey(decodeToken(token)))
                .parseClaimsJws(token)
                .getBody();
是否可以使用Java1.4(或至少使用Java5)实现上述两种功能?请导游,谢谢