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.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();

View File

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

View File

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