refactor: Builder 패턴으로 코드 리팩토링

This commit is contained in:
hylee 2023-05-16 12:19:52 +09:00
parent 43d5afdc8b
commit 595763deaf
3 changed files with 56 additions and 27 deletions

View File

@ -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.cmn.idgen.service.IdgenService;
import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; import com.itn.mjonApi.mjon.api.access.service.AccessKeyService;
import com.itn.mjonApi.mjon.log.service.LettnLoginLogService; import com.itn.mjonApi.mjon.log.service.LettnLoginLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletResponse;
* 2023-02-15 hylee 최초 생성 * 2023-02-15 hylee 최초 생성
*/ */
//@Component //@Component
@Slf4j
public class CertifInterceptor implements HandlerInterceptor{ public class CertifInterceptor implements HandlerInterceptor{
@Autowired @Autowired
@ -46,6 +48,7 @@ public class CertifInterceptor implements HandlerInterceptor{
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception { throws Exception {
// URL 접속정보 // URL 접속정보
String referer = request.getHeader("Referer"); String referer = request.getHeader("Referer");
//System.out.println("=====preHandle=5=apikey=refer="+referer); //System.out.println("=====preHandle=5=apikey=refer="+referer);
@ -55,42 +58,59 @@ public class CertifInterceptor implements HandlerInterceptor{
{ {
try{ try{
//step0-1.log 남기기 //step0-1.log 남기기
LettnLoginLogVO lettnLoginLogVO = new LettnLoginLogVO();
//ip //ip
HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String ip = req.getHeader("X-FORWARDED-FOR"); String ip = req.getHeader("X-FORWARDED-FOR");
if (ip == null){ ip = req.getRemoteAddr();} if (ip == null){ ip = req.getRemoteAddr();}
lettnLoginLogVO.setConectIp(ip);
// lettnLoginLogVO.setConectIp(ip);
//사용자 여부 //사용자 여부
lettnLoginLogVO.setUserAt("U"); // lettnLoginLogVO.setUserAt("U");
//사용자 ID //사용자 ID
lettnLoginLogVO.setConectId(request.getParameter("mberId")); // lettnLoginLogVO.setConectId(request.getParameter("mberId"));
//device type //device type
if(_isMobile(request)){ // if(_isMobile(request)){
lettnLoginLogVO.setDeviceType("M"); // lettnLoginLogVO.setDeviceType("M");
}else{ // }else{
lettnLoginLogVO.setDeviceType("P"); // lettnLoginLogVO.setDeviceType("P");
} // }
//program_nm - API 고정
lettnLoginLogVO.setProgrmFileNm("API"); // lettnLoginLogVO.setProgrmFileNm("API");
lettnLoginLogVO.setMenuNm("API"); // lettnLoginLogVO.setMenuNm("API");
lettnLoginLogVO.setMenuNo("100"); // lettnLoginLogVO.setMenuNo("100");
//url //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 //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05
if (lettnLoginLogVO.getUrl().length()>200){ //길이문제로 오류가 발생하는 경우도 처리하도록 수정 if (lettnLoginLogVO.getUrl().length()>200){ //길이문제로 오류가 발생하는 경우도 처리하도록 수정
lettnLoginLogVO.setUrl(lettnLoginLogVO.getUrl().substring(0,199)); lettnLoginLogVO.setUrl(lettnLoginLogVO.getUrl().substring(0,199));
} }
// logId :: idgen 사용으로 수정 => 2023-04-25 // logId :: idgen 사용으로 수정 => 2023-04-25
lettnLoginLogVO.setLogId(idgenApiLogId.getNextStringId()); // lettnLoginLogVO.setLogId(idgenApiLogId.getNextStringId());
lettnLoginLogService.insert(lettnLoginLogVO); lettnLoginLogService.insert(lettnLoginLogVO);
@ -118,12 +138,19 @@ public class CertifInterceptor implements HandlerInterceptor{
//step1. 검증 - accessKey & mberId 검증을 위한 필수값 //step1. 검증 - accessKey & mberId 검증을 위한 필수값
{ {
try{ try{
AccessKeyVO accessKeyVO = new AccessKeyVO(); // AccessKeyVO accessKeyVO = new AccessKeyVO();
accessKeyVO.setAccessKey(request.getParameter("accessKey")); // accessKeyVO.setAccessKey(request.getParameter("accessKey"));
accessKeyVO.setMberId(request.getParameter("mberId")); // accessKeyVO.setMberId(request.getParameter("mberId"));
accessKeyVO.setCallInfo(referer); // accessKeyVO.setCallInfo(referer);
accessKeyVO = accessKeyService.selectRKey(accessKeyVO); // hylee Builder 패턴으로 변경 => 20230516
AccessKeyVO accessKeyVO = accessKeyService.selectRKey(
new AccessKeyVO().builder()
.accessKey(request.getParameter("accessKey"))
.mberId(request.getParameter("mberId"))
.callInfo(referer)
.build()
);
//인증 실패 //인증 실패
if (accessKeyVO ==null) { if (accessKeyVO ==null) {

View File

@ -12,6 +12,7 @@ import java.io.Serializable;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Builder
public class AccessKeyVO implements Serializable { public class AccessKeyVO implements Serializable {
private static final long serialVersionUID = -7865729705175845268L; private static final long serialVersionUID = -7865729705175845268L;

View File

@ -12,6 +12,7 @@ import java.io.Serializable;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Builder
public class LettnLoginLogVO implements Serializable { public class LettnLoginLogVO implements Serializable {
private static final long serialVersionUID = -7865729705175845268L; private static final long serialVersionUID = -7865729705175845268L;