added userId in the token

This commit is contained in:
rajesh
2024-08-22 11:52:33 +05:30
parent 84283ba69f
commit 5517550d7d
3 changed files with 12 additions and 11 deletions

View File

@@ -5,6 +5,8 @@ import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import jakarta.annotation.PostConstruct;
import net.gepafin.tendermanagement.entities.UserEntity;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +41,7 @@ public class TokenProvider {
log.info("JWT Secret Key initialized.");
}
public String createToken(Authentication authentication, Boolean rememberMe) {
public String createToken(Authentication authentication, Boolean rememberMe, UserEntity user) {
String authorities = authentication.getAuthorities().stream()
.map(GrantedAuthority::getAuthority)
.collect(Collectors.joining(","));
@@ -55,9 +57,14 @@ public class TokenProvider {
validity = new Date(now + (this.tokenValidityInSeconds * 1000));
log.info("Creating token with standard validity of {} seconds.", this.tokenValidityInSeconds);
}
String payload = authentication.getName();
if(user != null) {
payload += ":"+user.getId();
}
String token = Jwts.builder()
.setSubject(authentication.getName())
.setSubject(payload)
.claim("auth", authorities)
.signWith(key, SignatureAlgorithm.HS512)
.setExpiration(validity)