You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JWT签名验证失败:HmacSHA256算法验证无效问题求助

排查JWT签名验证失败(SignatureVerificationException)问题

以下是针对Spring Boot中JWT验证阶段抛出SignatureVerificationException(提示“The Token's Signature resulted invalid when verified using the Algorithm: HmacSHA256”)的核心排查方向:

1. 签名密钥不一致

  • 生成Token与验证Token时使用的HmacSHA256密钥必须完全一致,包括大小写、空格、特殊字符,无任何差异。
  • 检查YML配置中的密钥配置项,确认生成逻辑(UserAuthProvider)和验证逻辑(JwtAuthFilter)读取的是同一个配置值,避免配置项拼写错误、读取路径不一致。
  • 若密钥从环境变量获取,需确保生成与验证阶段的环境变量值完全相同,杜绝开发/测试环境密钥不匹配的情况。

2. 算法与密钥处理不匹配

  • 确认生成Token时明确指定HmacSHA256算法,验证阶段需使用完全相同的算法,示例代码需统一:
    // Token生成逻辑
    Jwts.builder()
        .signWith(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)), SignatureAlgorithm.HS256)
        // 其他配置...
    // Token验证逻辑
    Jwts.parserBuilder()
        .setSigningKey(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)))
        .build()
        .parseClaimsJws(token);
    
  • 若密钥是Base64编码格式,生成和验证阶段都需统一进行Base64解码,不能直接使用字符串字节数组。

3. Token完整性与格式问题

  • 在JwtAuthFilter中打印前端传递的Token值,与生成时返回的Token对比,检查是否存在传递过程中被截断、添加多余字符(如空格、引号)的情况。
  • 确认Token为标准JWT三段式结构(header.payload.signature),无任何篡改。

4. SecurityConfig配置异常

  • 检查JwtAuthFilter是否被正确添加到SecurityFilterChain中,且拦截顺序在UsernamePasswordAuthenticationFilter之前,确保Token先被解析再执行权限验证。
  • 确认需要验证的接口路径未被错误排除在拦截范围外,避免验证逻辑未触发的情况。

5. 依赖版本冲突

  • 检查POM中JWT相关依赖(如jjwt系列)的版本是否统一,避免不同子依赖版本不一致导致的兼容性问题,示例依赖配置:
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-api</artifactId>
        <version>0.11.5</version>
    </dependency>
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-impl</artifactId>
        <version>0.11.5</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-jackson</artifactId>
        <version>0.11.5</version>
        <scope>runtime</scope>
    </dependency>
    
  • 避免引入多个不同厂商的JWT依赖库,防止类加载冲突。

内容的提问来源于stack exchange,提问作者Артём Орёл

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 20:02:45