Насколько я знаю, нет никакого способа судить, является ли JWT законным, но при декодировании незаконного JWT будет выдано исключение, поэтому вы можете судить, является ли оно законным, перехватывая исключение.
Декодировать JWT:
publi c String parseToken (String jwt) {
return Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(jwt)
.getBody()
.getSubject();
}
Проверка JWT:
publi c логическое значение isTokenValid (String jwt) {
try {
parseToken(jwt);
} catch (Throwable e) {
return false;
}
return true;
}