jwt : ajout du userId et du teamId dans le token

This commit is contained in:
Hedi 2022-02-06 22:50:59 +01:00
parent aece88e2a8
commit e5bd670998

View File

@ -27,6 +27,8 @@ import io.jsonwebtoken.JwtException;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;
import fr.organizee.repository.MembreRepository;
/** /**
* JWT : classe utilitaire chargée de fournir le Jeton (Token) et les ©rifications * JWT : classe utilitaire chargée de fournir le Jeton (Token) et les ©rifications
*/ */
@ -44,6 +46,8 @@ public class JwtTokenProvider {
@Autowired @Autowired
private UserDetailsService userDetailsService; private UserDetailsService userDetailsService;
@Autowired
private MembreRepository membreRepo;
/** /**
* Cette ©thode d'initialisation s'exécute avant le constructeur * Cette ©thode d'initialisation s'exécute avant le constructeur
* Elle encode notre code secret en base64 pour la transmission dans le header * Elle encode notre code secret en base64 pour la transmission dans le header
@ -104,6 +108,10 @@ public class JwtTokenProvider {
public String createToken(String email, List<Role> roles){ public String createToken(String email, List<Role> roles){
Claims claims = Jwts.claims().setSubject(email); Claims claims = Jwts.claims().setSubject(email);
claims.put("userId", membreRepo.findByEmail(email).get().getId());
if(membreRepo.findByEmail(email).get().getTeam() != null){
claims.put("teamId", membreRepo.findByEmail(email).get().getTeam().getId());
}
claims.put("auth", roles.stream().map(s -> new SimpleGrantedAuthority(s.getAuthority())).filter(Objects::nonNull).collect(Collectors.toList())); claims.put("auth", roles.stream().map(s -> new SimpleGrantedAuthority(s.getAuthority())).filter(Objects::nonNull).collect(Collectors.toList()));
System.out.println("claims = "+claims); System.out.println("claims = "+claims);