| | |
| | | import io.jsonwebtoken.Jws; |
| | | import io.jsonwebtoken.Jwts; |
| | | import io.jsonwebtoken.SignatureAlgorithm; |
| | | import kr.wisestone.owl.constant.MsgConstants; |
| | | import kr.wisestone.owl.domain.ApiToken; |
| | | import kr.wisestone.owl.domain.User; |
| | | import kr.wisestone.owl.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.repository.ApiTokenRepository; |
| | | import kr.wisestone.owl.service.ApiTokenService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | |
| | | } |
| | | |
| | | //JWT 복호화 |
| | | public UserVo getUser(String jwt) { |
| | | private UserVo getUserVo(String jwt) { |
| | | |
| | | //결과값 = Claims |
| | | Jws<Claims> claims = decryption(jwt); |
| | | if (claims == null) |
| | | return null; |
| | | |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | //반환 타입은 LinkedHashMap 이다. 이를 User 타입으로 변환하기 위해 ObjectMapper 사용 |
| | | return objectMapper.convertValue(claims.getBody().get(DATA_KEY), UserVo.class); |
| | | } |
| | | |
| | | private Jws<Claims> decryption(String jwt) { |
| | | //결과값 = Claims |
| | | Jws<Claims> claims = null; |
| | | |
| | |
| | | } catch (Exception e) { |
| | | log.debug(e.getMessage(), e); |
| | | } |
| | | |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | //반환 타입은 LinkedHashMap 이다. 이를 User 타입으로 변환하기 위해 ObjectMapper 사용 |
| | | return objectMapper.convertValue(claims.getBody().get(DATA_KEY), UserVo.class); |
| | | return claims; |
| | | } |
| | | |
| | | |
| | | // 토큰 조회 |
| | | @Override |
| | |
| | | return null; |
| | | } |
| | | |
| | | // 토큰 사용자 인증 |
| | | @Override |
| | | public UserVo certification(String token) { |
| | | UserVo userVo = this.getUserVo(token); |
| | | if (userVo != null){ |
| | | return userVo; |
| | | } else { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ERROR_TOKEN)); |
| | | } |
| | | } |
| | | |
| | | // 토큰 삭제 |
| | | @Override |
| | | public void remove(ApiTokenForm apiTokenForm) { |