我正在尝试使用 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]