同一个BIZ包部署到不同的环境,一个正常,一个一直报签名认证失败,我的版本是4.5的

Blade 未结 2 612
1502461081
1502461081 剑圣 2025-09-28 11:42

我本地电脑部署BIZ业务是正常访问的,如图:

image.png


我把BIZ部署到正式机去,就一直报签名认证失败

image.png

2条回答
  • 2025-09-28 11:47

    不清楚你改过哪里所以无法判断,按照这个帖子跑一遍原版,再部署一遍原版看看什么结果:https://sns.bladex.cn/q-15429.html


    0 讨论(0)
  • 20小时前

    可以检查一下系统时钟是否一致,我在一台电脑运行业务服务,其他电脑允许gateway等服务;
    也有遇到这个问题;


    测试流程:

     @Getter
     private static JwtProperties jwtProperties;
    
     public static void setJwtProperties(JwtProperties properties) {
         if (TokenUtil.jwtProperties == null) {
             TokenUtil.jwtProperties = properties;
         }
     }
    
     public static String getBase64Security() {
         return Base64.getEncoder().encodeToString(getJwtProperties().getSignKey().getBytes(StandardCharsets.UTF_8));
     }
    
     public static Claims parseJWT(String jsonWebToken) {
         try {
             SecretKey secretKey = Keys.hmacShaKeyFor(Base64.getDecoder().decode(getBase64Security()));
             return Jwts.parser()
                     .verifyWith(secretKey)
                     .build()
                     .parseSignedClaims(jsonWebToken)
                     .getPayload();
         } catch (Exception ex) {
    log.error("解析JWT异常!trace:{}", Exceptions.getStackTraceAsString(ex));
             return null;
         }
     }

    对 parseJWT 的错误进行手动处理,可以看到以下日志

    JwtUtil parseJWT error! e:io.jsonwebtoken.PrematureJwtException: JWT early by 1860 milliseconds before 2026-06-01T04:07:59.000Z. Current time: 2026-06-01T04:07:57.140Z. Allowed clock skew: 0 milliseconds.

    0 讨论(0)
提交回复