Я использую jjwt для создания JWT для моего приложения, оно работало нормально, пока я не обновил свою версию Java с 1.8 до OpenJDK 11.
Теперь, всякий раз, когда я генерирую JDK, используяприведенный ниже фрагмент кода выдает ошибку Throwable, и это тоже не в моей локальной среде, а на моих серверах UAT.
Throwable Error (только однострочная) :
io.jsonwebtoken.SignatureAlgorithm.getMinKeyLength ()
Фрагмент моего кода
/**
* {@inheritDoc}
*/
public JWTResponse getJWT(UserRoleObject userRoleObject) {
Key key = Keys.hmacShaKeyFor(getHS256SecretBytes());
String jws = Jwts.builder()
.setIssuer(jwtIssuer) // Issuer of the JWT
.setSubject(jwtSubject) // Purpose of this JWT
.addClaims(getClaims(userRoleObject)) // Claims containing User Information
.setIssuedAt(PartnerPortalUtil.getDateInGMT()) // When this token is being issued
.setExpiration(DateUtils.addHours(PartnerPortalUtil.getDateInGMT(), tokenExpiryHours)) // When this token will be expired
.signWith(key)
//.signWith(SignatureAlgorithm.HS256, getHS256SecretBytes()) // How this token is being signed
.compact();
return new JWTResponse(jws);
}
и мой метод getH256SecretBytes выглядит следующим образом:
/**
* Method to get the secret key in Bytes which will be used to sign the JWT./
*
* @return Byte array representation of the secret key being used.
*/
private byte[] getHS256SecretBytes() {
return TextCodec.BASE64.decode(secrets.get(SignatureAlgorithm.HS256.getValue()));
}