代码拉取完成,页面将自动刷新
第二个错误是发生在JsonWebTokenUtil里的parseJwt()这个方法里
public static JwtAccount parseJwt(String jwt, String appKey) throws ExpiredJwtException, UnsupportedJwtException, MalformedJwtException, SignatureException, IllegalArgumentException {
Claims claims = Jwts.parser()
.setSigningKey(DatatypeConverter.parseBase64Binary(appKey))
//在这一行会抛出SignatureException被jwtMatcher捕获到
.parseClaimsJws(jwt)
.getBody();
经过debug发现,抛出这个错误是因为在MacValidator的isValid方法中,比较jwt的header和payload生成的摘要和解析jwt获得的摘要不一致,就会报出这个错误。按说没道理呀,不知道怎么处理。
public boolean isValid(byte[] data, byte[] signature) {
byte[] computed = this.signer.sign(data);
//这里的this.signer是macSigner alg=HS512
return MessageDigest.isEqual(computed, signature);
}