Bonjour,
je souhaite renvoyer un jwt avec le nom des roles de l' utilisateur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
    @Override
    public String getJwtInviter(String email) {
        String jwtToken = Jwts.builder().setSubject(email)
        .setExpiration(new Date(System.currentTimeMillis() + SecurityConst.EXP))
        .signWith(SignatureAlgorithm.HS512, SecuConstants.SECRET).claim("roles", "INVITER").compact();
        return SecuConstants.TOKEN_PREFIX+jwtToken;
    }
lorsque je décode le jwt j'ai ceci en payload:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
{
  "sub": "titi@titi.fr",
  "exp": 1591113325,
  "roles": "INVITER"
}
il me faudrait ajouter dans roles non pas une chaîne de caractère mais une liste d'un seul élément,
comment je dois m'y prendre ?

voici ce que j'espère obtenir:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
{
  "sub": "titi@titi.fr",
  "exp": 1591113325,
  "roles": [{"Authority":"INVITER"}]
}
il fallait créer une map de type string

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
        Map<String, String>       mapRole = new HashMap<String, String>();
        mapRole.put("authority","INVITER");
        String jwtToken = Jwts.builder().setSubject(email)
        .setExpiration(new Date(System.currentTimeMillis() + SecurityConst.EXP))
        .signWith(SignatureAlgorithm.HS512, SecuConstants.SECRET).claim("roles", mapRole).compact();
        return SecuConstants.TOKEN_PREFIX+jwtToken;;
merci d'avance de vos réponses.