Я создал токен JWT в Spring Boot для хранения данных пользователя.Когда я использую Jwttokenutil. getUsernameFromToken (authToken) [authToken - это пройденный токен], я получаю набор данных для Subject.Точно так же я хочу получить набор данных Payload, который содержит другие данные пользователя.Но я не могу его получить.
======= Ниже приведен мой метод / код генерации токена: ========
public String generateToken(HashMap<String, Object> userData,String subject)
{
String jwtToken="";
System.out.println("in generate token method : " + subject);
jwtToken = Jwts.builder()
.setSubject(subject) // subject is dbname
.claim("userDetails", userData)
.setPayload(userData.toString())
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + 60*60*5*1000))
.signWith(SignatureAlgorithm.HS256, "secretkey")
.compact();
System.out.println("userData " + userData);
return jwtToken;
}
======= Ниже приведен метод, который я создал для получения данных полезной нагрузки ======
public Object getPayloadFromToken(String token)
{
Claims body= Jwts.parser()
.setSigningKey("secretkey")
.parseClaimsJws(token)
.getBody();
System.out.println("userdet==========> " + body.get("userDetails") );
return body.get("userDetails");
}
=== Но я получаю эту ошибку ===
java.lang.IllegalStateException: и 'полезная нагрузка' и 'заявки' не могут быть оба определены.Выберите один из них.