我正在尝试解析从客户端请求的 X-AUTH-TOKEN 标头中检索的 JJWT 令牌中的声明。问题是解析会抛出 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。