diff --git a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java index e0acdc1..e8fb090 100644 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java +++ b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java @@ -7,6 +7,7 @@ import com.itn.mjonApi.mjon.log.service.mapper.domain.LettnLoginLogVO; import com.itn.mjonApi.cmn.idgen.service.IdgenService; import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; import com.itn.mjonApi.mjon.log.service.LettnLoginLogService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.context.request.RequestContextHolder; @@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletResponse; * 2023-02-15 hylee 최초 생성 */ //@Component +@Slf4j public class CertifInterceptor implements HandlerInterceptor{ @Autowired @@ -46,6 +48,7 @@ public class CertifInterceptor implements HandlerInterceptor{ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // URL 접속정보 String referer = request.getHeader("Referer"); //System.out.println("=====preHandle=5=apikey=refer="+referer); @@ -55,42 +58,59 @@ public class CertifInterceptor implements HandlerInterceptor{ { try{ //step0-1.log 남기기 - LettnLoginLogVO lettnLoginLogVO = new LettnLoginLogVO(); //ip HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); String ip = req.getHeader("X-FORWARDED-FOR"); if (ip == null){ ip = req.getRemoteAddr();} - - lettnLoginLogVO.setConectIp(ip); + + + +// lettnLoginLogVO.setConectIp(ip); //사용자 여부 - lettnLoginLogVO.setUserAt("U"); - +// lettnLoginLogVO.setUserAt("U"); + //사용자 ID - lettnLoginLogVO.setConectId(request.getParameter("mberId")); +// lettnLoginLogVO.setConectId(request.getParameter("mberId")); //device type - if(_isMobile(request)){ - lettnLoginLogVO.setDeviceType("M"); - }else{ - lettnLoginLogVO.setDeviceType("P"); - } +// if(_isMobile(request)){ +// lettnLoginLogVO.setDeviceType("M"); +// }else{ +// lettnLoginLogVO.setDeviceType("P"); +// } - //program_nm - API 값 고정 - lettnLoginLogVO.setProgrmFileNm("API"); - lettnLoginLogVO.setMenuNm("API"); - lettnLoginLogVO.setMenuNo("100"); + +// lettnLoginLogVO.setProgrmFileNm("API"); +// lettnLoginLogVO.setMenuNm("API"); +// lettnLoginLogVO.setMenuNo("100"); //url - lettnLoginLogVO.setUrl(request.getRequestURI()); +// lettnLoginLogVO.setUrl(request.getRequestURI()); + + // hylee Builder 패턴으로 변경 => 20230516 + LettnLoginLogVO lettnLoginLogVO = + new LettnLoginLogVO() + .builder() + .logId(idgenApiLogId.getNextStringId()) // idgen ID + .conectId(request.getParameter("mberId")) //사용자 ID + .userAt("U") //사용자 여부 + .conectIp(ip) + .deviceType(_isMobile(request) ? "M" : "P") //device type + .progrmFileNm("API") //program_nm, menuNm, menuNo - API 값 고정 + .menuNm("API") + .menuNo("100") + .url(request.getRequestURI()) + .build(); + //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05 if (lettnLoginLogVO.getUrl().length()>200){ //길이문제로 오류가 발생하는 경우도 처리하도록 수정 lettnLoginLogVO.setUrl(lettnLoginLogVO.getUrl().substring(0,199)); } // logId :: idgen 사용으로 수정 => 2023-04-25 - lettnLoginLogVO.setLogId(idgenApiLogId.getNextStringId()); +// lettnLoginLogVO.setLogId(idgenApiLogId.getNextStringId()); lettnLoginLogService.insert(lettnLoginLogVO); @@ -118,19 +138,26 @@ public class CertifInterceptor implements HandlerInterceptor{ //step1.키 검증 - accessKey & mberId 는 검증을 위한 필수값 { try{ - AccessKeyVO accessKeyVO = new AccessKeyVO(); - accessKeyVO.setAccessKey(request.getParameter("accessKey")); - accessKeyVO.setMberId(request.getParameter("mberId")); - accessKeyVO.setCallInfo(referer); - - accessKeyVO = accessKeyService.selectRKey(accessKeyVO); +// AccessKeyVO accessKeyVO = new AccessKeyVO(); +// accessKeyVO.setAccessKey(request.getParameter("accessKey")); +// accessKeyVO.setMberId(request.getParameter("mberId")); +// accessKeyVO.setCallInfo(referer); + + // hylee Builder 패턴으로 변경 => 20230516 + AccessKeyVO accessKeyVO = accessKeyService.selectRKey( + new AccessKeyVO().builder() + .accessKey(request.getParameter("accessKey")) + .mberId(request.getParameter("mberId")) + .callInfo(referer) + .build() + ); //인증 실패 if (accessKeyVO ==null) { - - this._jsonResult(response, HttpStatus.UNAUTHORIZED); - return false; - } + + this._jsonResult(response, HttpStatus.UNAUTHORIZED); + return false; + } }catch(Exception ex) { ex.printStackTrace(); diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/service/mapper/domain/AccessKeyVO.java b/src/main/java/com/itn/mjonApi/mjon/api/access/service/mapper/domain/AccessKeyVO.java index f207ec6..dd1d8d5 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/service/mapper/domain/AccessKeyVO.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/service/mapper/domain/AccessKeyVO.java @@ -12,6 +12,7 @@ import java.io.Serializable; @Setter @NoArgsConstructor @AllArgsConstructor +@Builder public class AccessKeyVO implements Serializable { private static final long serialVersionUID = -7865729705175845268L; diff --git a/src/main/java/com/itn/mjonApi/mjon/log/service/mapper/domain/LettnLoginLogVO.java b/src/main/java/com/itn/mjonApi/mjon/log/service/mapper/domain/LettnLoginLogVO.java index 438b3cc..2526faa 100644 --- a/src/main/java/com/itn/mjonApi/mjon/log/service/mapper/domain/LettnLoginLogVO.java +++ b/src/main/java/com/itn/mjonApi/mjon/log/service/mapper/domain/LettnLoginLogVO.java @@ -12,6 +12,7 @@ import java.io.Serializable; @Setter @NoArgsConstructor @AllArgsConstructor +@Builder public class LettnLoginLogVO implements Serializable { private static final long serialVersionUID = -7865729705175845268L;