OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-01 5fb1952ae91f1a739803247266e87dbd15ea1f27
src/main/java/kr/wisestone/owl/service/impl/ApiTokenServiceImpl.java
@@ -4,8 +4,10 @@
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;
@@ -84,8 +86,19 @@
    }
    //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;
@@ -98,11 +111,9 @@
        } 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
@@ -115,6 +126,18 @@
        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) {