我正在尝试解析JJWT令牌中的声明,我从客户端请求的X-AUTH-TOKEN标头中检索。 问题是解析会抛出SignatureException,尽管令牌已正确签名。
这是我的泽西过滤器:
@Provider
public class ClientClaimsFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
String token = requestContext.getHeaderString("X-AUTH-TOKEN");
if ((token != null) && (!token.isEmpty())) {
Claims claims = Jwts.parse().setSigningKey(key).parseClaimsJws(token).getBody();
}
}
}
生成key
的地方String key = TextCodec.BASE64.encode(MacProvider.generateKey(SignatureAlgorithm.HS256).getEncoded());
我验证了密钥在生成令牌和解析时保持不变。但是解析时仍然存在SignatureException。