0

我正在尝试使用 jose4j,例如,我尝试验证 JsonWebSignature 而不设置 CompactSerialization 的第一部分(因为我们使用不受保护的标头)。

它还给我

org.jose4j.lang.JoseException:解析错误:org.jose4j.json.internal.json_simple.parser.ParseException:位置 0 处出现意外字符 (�)。

你有什么想法可以允许吗?

谢谢

编辑
代码是:

JsonWebSignature jws = new JsonWebSignature();

LicenseKeystore lk = new LicenseKeystore();

jws.setAlgorithmConstraints(new AlgorithmConstraints(ConstraintType.PERMIT, lk.KS_ALG));

JsonCanonicalizer jc = new JsonCanonicalizer(jsonSigned);

jws.setCompactSerialization(new Base64Url().base64UrlEncodeUtf8ByteRepresentation(null) + "." +
    new Base64Url().base64UrlEncodeUtf8ByteRepresentation(jc.getEncodedString()) + "." +
    cs.getSignature());

jws.setKey(lk.getPublicKey());

try {
    return jws.verifySignature();
} catch (InvalidAlgorithmException e) {
    return false;
}

JWS 的类型为.[payload].[signature]

4

0 回答 0