io.jsonwebtoken.Безопасность.Исключение SignatureException: подпись JWT не совпадает с локально вычисленной подписью после обновления версии весенней загрузки

#java #jwt

Вопрос:

Я использую jjwt( api "io.jsonwebtoken:jjwt-api:0.11.2" ) для создания веб-токена, это мой код для создания токена JWT:

 public static String generateTokenByClaim(Claims claims, Date expireDate) {  SecretKey secretKey = new SecretKeySpec(JWT_SIGN_KEY.getBytes(), SignatureAlgorithm.HS256.getJcaName());  String accessToken = Jwts.builder().setClaims(claims)  .setExpiration(expireDate)  .signWith(secretKey).compact();  return accessToken; }  

когда я попытался получить информацию о претензии, подобную этой:

 public static Claims getClaimFromToken(String token) {  return Jwts.parserBuilder().setSigningKey(JWT_SIGN_KEY.getBytes()).build()  .parseClaimsJws(token).getBody();  }  

показывает такую ошибку:

 Suppressed: io.jsonwebtoken.security.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.  at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:420) ~[jjwt-impl-0.11.2.jar!/:0.11.2]  Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:  Error has been observed at the following site(s):  *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]  *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]  *__checkpoint ⇢ HTTP GET "/music/songs/v1/jump/475597470" [ExceptionHandlingWebHandler] Original Stack Trace:  at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:420) ~[jjwt-impl-0.11.2.jar!/:0.11.2]  at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:550) ~[jjwt-impl-0.11.2.jar!/:0.11.2]  at io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:610) ~[jjwt-impl-0.11.2.jar!/:0.11.2]  

Я уверен, что код отлично работает в течение одного года, пока недавно я не обновил версию spring boot.почему это должно было произойти? Что мне следует сделать, чтобы устранить эту проблему?