|
|
@ -1,21 +1,24 @@ |
|
|
|
package com.palnet.biz.api.acnt.jwt.utils; |
|
|
|
package com.palnet.biz.api.acnt.jwt.utils; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.Serializable; |
|
|
|
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; |
|
|
|
import java.util.Date; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.function.Function; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
|
|
|
import org.springframework.security.core.userdetails.UserDetails; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.acnt.jwt.model.JwtUserModel; |
|
|
|
import com.palnet.biz.api.acnt.jwt.model.JwtUserModel; |
|
|
|
|
|
|
|
|
|
|
|
import io.jsonwebtoken.Claims; |
|
|
|
import io.jsonwebtoken.Claims; |
|
|
|
import io.jsonwebtoken.Jwts; |
|
|
|
import io.jsonwebtoken.Jwts; |
|
|
|
import io.jsonwebtoken.SignatureAlgorithm; |
|
|
|
import io.jsonwebtoken.SignatureAlgorithm; |
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
|
|
|
import org.springframework.security.core.userdetails.UserDetails; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import org.springframework.web.context.request.RequestContextHolder; |
|
|
|
|
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
|
|
|
|
import java.io.Serializable; |
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.function.Function; |
|
|
|
|
|
|
|
|
|
|
|
@Component |
|
|
|
@Component |
|
|
|
@Log4j2 |
|
|
|
@Log4j2 |
|
|
@ -30,6 +33,8 @@ public class JwtTokenUtil implements Serializable { |
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.jwt.secret}") |
|
|
|
@Value("${spring.jwt.secret}") |
|
|
|
private String secret; |
|
|
|
private String secret; |
|
|
|
|
|
|
|
@Value("${spring.jwt.prefix}") |
|
|
|
|
|
|
|
private String JWT_PREFIX; |
|
|
|
|
|
|
|
|
|
|
|
//retrieve username from jwt token
|
|
|
|
//retrieve username from jwt token
|
|
|
|
// jwt token으로부터 username을 획득한다.
|
|
|
|
// jwt token으로부터 username을 획득한다.
|
|
|
@ -66,6 +71,7 @@ public class JwtTokenUtil implements Serializable { |
|
|
|
Map<String, Object> claims = new HashMap<>(); |
|
|
|
Map<String, Object> claims = new HashMap<>(); |
|
|
|
claims.put("userId", userDetails.getUserId()); |
|
|
|
claims.put("userId", userDetails.getUserId()); |
|
|
|
claims.put("cstmrSno", userDetails.getCstmrSno()); |
|
|
|
claims.put("cstmrSno", userDetails.getCstmrSno()); |
|
|
|
|
|
|
|
claims.put("group", userDetails.getGroup()); |
|
|
|
return doGenerateToken(claims, userDetails.getUsername()); |
|
|
|
return doGenerateToken(claims, userDetails.getUsername()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -101,4 +107,35 @@ public class JwtTokenUtil implements Serializable { |
|
|
|
final String username = getUsernameFromToken(token); |
|
|
|
final String username = getUsernameFromToken(token); |
|
|
|
return (username.equals(userDetails.getUsername()) && !isTokenExpired(token)); |
|
|
|
return (username.equals(userDetails.getUsername()) && !isTokenExpired(token)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getUserIdByToken() { |
|
|
|
|
|
|
|
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); |
|
|
|
|
|
|
|
HttpServletRequest rq = sra.getRequest(); |
|
|
|
|
|
|
|
String token = rq.getHeader("Authorization"); |
|
|
|
|
|
|
|
if(token == null || "".equals(token)) return null; |
|
|
|
|
|
|
|
token = token.substring(JWT_PREFIX.length()).trim(); |
|
|
|
|
|
|
|
String userId = getUsernameFromToken(token); |
|
|
|
|
|
|
|
return userId; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public Integer getCstmrSnoByToken() { |
|
|
|
|
|
|
|
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); |
|
|
|
|
|
|
|
HttpServletRequest rq = sra.getRequest(); |
|
|
|
|
|
|
|
String token = rq.getHeader("Authorization"); |
|
|
|
|
|
|
|
if(token == null || "".equals(token)) return null; |
|
|
|
|
|
|
|
token = token.substring(JWT_PREFIX.length()).trim(); |
|
|
|
|
|
|
|
Claims payload = getAllClaimsFromToken(token); |
|
|
|
|
|
|
|
Integer cstmrSno = payload.get("cstmrSno",Integer.class); |
|
|
|
|
|
|
|
return cstmrSno; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<JwtGroupModel> getGroupAuthByToken() { |
|
|
|
|
|
|
|
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); |
|
|
|
|
|
|
|
HttpServletRequest rq = sra.getRequest(); |
|
|
|
|
|
|
|
String token = rq.getHeader("Authorization"); |
|
|
|
|
|
|
|
if(token == null || "".equals(token)) return null; |
|
|
|
|
|
|
|
token = token.substring(JWT_PREFIX.length()).trim(); |
|
|
|
|
|
|
|
Claims payload = getAllClaimsFromToken(token); |
|
|
|
|
|
|
|
List<JwtGroupModel> cstmrSno = payload.get("group",List.class); |
|
|
|
|
|
|
|
return cstmrSno; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |