OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2022-01-10 3955206191fdeb3a0609bd2170ed97f3f283d860
src/main/java/kr/wisestone/owl/service/impl/ApiTokenServiceImpl.java
@@ -7,9 +7,11 @@
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.ApiToken;
import kr.wisestone.owl.domain.User;
import kr.wisestone.owl.exception.ApiAuthException;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.repository.ApiTokenRepository;
import kr.wisestone.owl.service.ApiTokenService;
import kr.wisestone.owl.service.UserService;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.util.DateUtil;
import kr.wisestone.owl.util.WebAppUtil;
@@ -37,7 +39,6 @@
    @Autowired
    private ApiTokenRepository apiTokenRepository;
    @Autowired
    protected WebAppUtil webAppUtil;
@@ -124,25 +125,50 @@
    @Override
    public ApiTokenVo find() {
        User user = this.webAppUtil.getLoginUserObject();
        List<ApiToken> apiTokens = this.apiTokenRepository.findByUserId(user.getId());
        if (apiTokens != null && apiTokens.size() >0 ) {
            return ConvertUtil.copyProperties(apiTokens.get(0), ApiTokenVo.class);
        return this.find(user.getId());
    }
    private ApiTokenVo find(Long userId) {
        if (userId != null) {
            List<ApiToken> apiTokens = this.apiTokenRepository.findByUserId(userId);
            if (apiTokens != null && apiTokens.size() > 0) {
                return ConvertUtil.copyProperties(apiTokens.get(0), ApiTokenVo.class);
            }
        }
        return null;
    }
    // 토큰 사용자 인증
    // 토큰 사용자 인증, 인증후 사용자 가져오기
    @Override
    public UserVo certification(String token) {
         UserVo userVo = this.getUserVo(token);
         if (userVo != null){
         if (userVo != null && containsToken(userVo, token))
         {
             return userVo;
         } else  {
             throw new OwlRuntimeException(
             throw new ApiAuthException(
                     this.messageAccessor.getMessage(MsgConstants.ERROR_TOKEN));
         }
    }
    // 토큰으로 찾기
    private ApiToken find(String token) {
        List<ApiToken> apiTokens = this.apiTokenRepository.findByToken(token);
        if (apiTokens != null && apiTokens.size() > 0) {
            return apiTokens.get(0);
        }
        return null;
    }
    // 토큰 값이 db에 존재하는지 확인
    private boolean containsToken(UserVo userVo, String token) {
        List<ApiToken> apiTokens = this.apiTokenRepository.findByUserId(userVo.getId());
        if (apiTokens != null && apiTokens.size() > 0) {
            return apiTokens.get(0).getToken().equals(token);
        }
        return false;
    }
    // 토큰 삭제
    @Override
    public void remove(ApiTokenForm apiTokenForm) {