From a525a5d8b6c507bb9c8863818c9e087fddf78091 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 12 May 2023 15:23:04 +0900 Subject: [PATCH 1/3] =?UTF-8?q?2023-05-12=2015:32=20API=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/itn/mjonApi/cmn/config/WebConfig.java | 4 +- .../cmn/idgen/mapper/domain/AccessKeyVO.java | 3 + .../interceptor/CertificationInterceptor.java | 64 ++++++++++--------- .../mjon/api/web/AccessKeyRestController.java | 4 +- .../resources/mapper/api/AccessKeyMapper.xml | 8 ++- 5 files changed, 50 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java b/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java index 51ee0d2..46e3095 100644 --- a/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java +++ b/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java @@ -30,7 +30,9 @@ public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(certificationInterceptor()) - .addPathPatterns("/api/**"); + .addPathPatterns("/api/accessKey/**") + .addPathPatterns("/api/accessKey/**") + ; //.excludePathPatterns("/css/**", "/images/**", "/js/**"); } diff --git a/src/main/java/com/itn/mjonApi/cmn/idgen/mapper/domain/AccessKeyVO.java b/src/main/java/com/itn/mjonApi/cmn/idgen/mapper/domain/AccessKeyVO.java index e40e406..dddbcf0 100644 --- a/src/main/java/com/itn/mjonApi/cmn/idgen/mapper/domain/AccessKeyVO.java +++ b/src/main/java/com/itn/mjonApi/cmn/idgen/mapper/domain/AccessKeyVO.java @@ -28,5 +28,8 @@ public class AccessKeyVO implements Serializable { private String accessToken; //access_token 고유번호 private String tokenObj; //access_token 고유번호 private String expirePnttm; //access_token 파기일시 + + //for call_info + private String callInfo; //access_token 고유번호 } \ No newline at end of file diff --git a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java index 5a56221..2c044a7 100644 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java +++ b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.HandlerInterceptor; @@ -42,19 +43,10 @@ public class CertificationInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - //HttpSession session = request.getSession(); - - System.out.println("=====preHandle=4=apikey=="); - System.out.println("=====preHandle=4=apikey=="+request.getRequestURI()); - - System.out.println("=====preHandle=4=apikey=="+request.getRemoteAddr()); - System.out.println("=====preHandle=4=apikey=="+request.getRemoteHost()); - System.out.println("=====preHandle=4=apikey=="+request.getRemotePort()); - System.out.println("=====preHandle=4=apikey=="+request.getRemoteUser()); - System.out.println("=====preHandle=4=apikey=="+request.getRequestedSessionId()); - System.out.println("=====preHandle=4=apikey=="); - - + + // URL 접속정보 + String referer = request.getHeader("Referer"); + //System.out.println("=====preHandle=5=apikey=refer="+referer); //step0-1.log 남기기 //step0-2.IP 체크 @@ -77,7 +69,7 @@ public class CertificationInterceptor implements HandlerInterceptor{ lettnLoginLogVO.setConectId(request.getParameter("mberId")); //device type - if(isMobile(request)){ + if(_isMobile(request)){ lettnLoginLogVO.setDeviceType("M"); }else{ lettnLoginLogVO.setDeviceType("P"); @@ -98,22 +90,23 @@ public class CertificationInterceptor implements HandlerInterceptor{ lettnLoginLogService.insert(lettnLoginLogVO); - //step0-2.IP 체크 + //step0-2.IP 체크(호출IP체크) lettnLoginLogVO = lettnLoginLogService.selectIgnoreIpCnt(lettnLoginLogVO); int i_ignoreCnt = lettnLoginLogVO.getCnt(); + //IP 접근 제어 if (i_ignoreCnt>0) { //제한 아이피인 경우는 화면 안나옴 처리 - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"403\",\"message\":\"Forbidden\"}"); - + this._jsonResult(response, HttpStatus.FORBIDDEN); return false; - } + } }catch(Exception ex) { ex.printStackTrace(); + //내부 오류 + this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); + return false; } } @@ -124,27 +117,26 @@ public class CertificationInterceptor implements HandlerInterceptor{ AccessKeyVO accessKeyVO = new AccessKeyVO(); accessKeyVO.setAccessKey(request.getParameter("accessKey")); accessKeyVO.setMberId(request.getParameter("mberId")); + accessKeyVO.setCallInfo(referer); accessKeyVO = accessKeyService.selectRKey(accessKeyVO); + //인증 실패 if (accessKeyVO ==null) { - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"401\",\"message\":\"Unauthorized\"}"); + this._jsonResult(response, HttpStatus.UNAUTHORIZED); return false; } }catch(Exception ex) { ex.printStackTrace(); - - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"401\",\"message\":\"Unauthorized\"}"); - + + //내부 오류 + this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); return false; } } + return true; } @@ -165,8 +157,11 @@ public class CertificationInterceptor implements HandlerInterceptor{ } + + /////////////////////////////////////////////////////////////////////////////////////////////////// /*모바일접속 유무*/ - private boolean isMobile(HttpServletRequest request) { + /////////////////////////////////////////////////////////////////////////////////////////////////// + private boolean _isMobile(HttpServletRequest request) throws Exception{ String userAgent = request.getHeader("user-agent"); boolean mobile1 = userAgent.matches(".*(iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson).*"); boolean mobile2 = userAgent.matches(".*(LG|SAMSUNG|Samsung).*"); @@ -175,5 +170,16 @@ public class CertificationInterceptor implements HandlerInterceptor{ } return false; } + + private void _jsonResult( + HttpServletResponse p_response + , HttpStatus p_HttpStatus + ) throws Exception{ + p_response.setContentType("application/json"); + p_response.setCharacterEncoding("UTF-8"); + p_response.getWriter().write("{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"); + + //return "{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"; + } } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java index 45208ec..16fe8e0 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java @@ -8,6 +8,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import com.itn.mjonApi.cmn.idgen.mapper.domain.SendMsgVO; @@ -46,7 +47,8 @@ public class AccessKeyRestController { * 2.plain text * */ - @GetMapping("/api/accessKey/SendMsg") + @PostMapping("/api/accessKey/SendMsg") + //@GetMapping("/api/accessKey/SendMsg") public ResponseEntity apiaccessKeysendMsg( @ModelAttribute SendMsgVO sendMsgVO ){ diff --git a/src/main/resources/mapper/api/AccessKeyMapper.xml b/src/main/resources/mapper/api/AccessKeyMapper.xml index 1155fdc..2a6a497 100644 --- a/src/main/resources/mapper/api/AccessKeyMapper.xml +++ b/src/main/resources/mapper/api/AccessKeyMapper.xml @@ -89,10 +89,14 @@ FROM a + , lettngnrlmber_access_call_info b WHERE 1=1 - AND a.ACCESS_KEY = #{accessKey} - AND a.MBER_ID = #{mberId} + AND a.ACCESS_KEY = #{accessKey} + AND a.MBER_ID = #{mberId} + AND a.ACCESS_no = b.ACCESS_NO + AND b.CALL_INFO LIKE CONCAT(#{callInfo}, '%') + From 4aa7dd81fe4997dc01225a8615435f101c6a12ea Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 12 May 2023 16:00:28 +0900 Subject: [PATCH 2/3] =?UTF-8?q?2023-05-12=2015:59=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20?= =?UTF-8?q?=EB=B0=8F=20API=20=EC=A0=91=EC=86=8D=20TEST=20URL=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/itn/mjonApi/cmn/config/WebConfig.java | 6 +- .../cmn/interceptor/CertifInterceptor.java | 57 ++-- .../interceptor/CertificationInterceptor.java | 180 ------------ .../access/web/AccessKeyRestController.java | 56 +++- .../mjon/api/web/AccessKeyRestController.java | 265 ------------------ 5 files changed, 84 insertions(+), 480 deletions(-) delete mode 100644 src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java delete mode 100644 src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java diff --git a/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java b/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java index ff30d54..f95837b 100644 --- a/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java +++ b/src/main/java/com/itn/mjonApi/cmn/config/WebConfig.java @@ -23,15 +23,15 @@ import com.itn.mjonApi.cmn.interceptor.CertifInterceptor; public class WebConfig implements WebMvcConfigurer { @Bean - public CertifInterceptor certificationInterceptor(){ + public CertifInterceptor certifInterceptor(){ return new CertifInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(certificationInterceptor()) - .addPathPatterns("/api/accessKey/**") + registry.addInterceptor(certifInterceptor()) .addPathPatterns("/api/accessKey/**") + //.addPathPatterns("/api/accessTest/**") ; //.excludePathPatterns("/css/**", "/images/**", "/js/**"); } 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 8791e4d..df223db 100644 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java +++ b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java @@ -8,6 +8,7 @@ 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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.HandlerInterceptor; @@ -44,19 +45,10 @@ public class CertifInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - //HttpSession session = request.getSession(); - - System.out.println("=====preHandle=4=apikey=="); - System.out.println("=====preHandle=4=apikey=="+request.getRequestURI()); - - System.out.println("=====preHandle=4=apikey=="+request.getRemoteAddr()); - System.out.println("=====preHandle=4=apikey=="+request.getRemoteHost()); - System.out.println("=====preHandle=4=apikey=="+request.getRemotePort()); - System.out.println("=====preHandle=4=apikey=="+request.getRemoteUser()); - System.out.println("=====preHandle=4=apikey=="+request.getRequestedSessionId()); - System.out.println("=====preHandle=4=apikey=="); - + // URL 접속정보 + String referer = request.getHeader("Referer"); + //System.out.println("=====preHandle=5=apikey=refer="+referer); //step0-1.log 남기기 //step0-2.IP 체크 @@ -79,7 +71,7 @@ public class CertifInterceptor implements HandlerInterceptor{ lettnLoginLogVO.setConectId(request.getParameter("mberId")); //device type - if(isMobile(request)){ + if(_isMobile(request)){ lettnLoginLogVO.setDeviceType("M"); }else{ lettnLoginLogVO.setDeviceType("P"); @@ -106,18 +98,19 @@ public class CertifInterceptor implements HandlerInterceptor{ lettnLoginLogVO = lettnLoginLogService.selectIgnoreIpCnt(lettnLoginLogVO); int i_ignoreCnt = lettnLoginLogVO.getCnt(); + //IP 접근 제어 if (i_ignoreCnt>0) { //제한 아이피인 경우는 화면 안나옴 처리 - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"403\",\"message\":\"Forbidden\"}"); - + this._jsonResult(response, HttpStatus.FORBIDDEN); return false; - } + } }catch(Exception ex) { ex.printStackTrace(); + //내부 오류 + this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); + return false; } } @@ -128,28 +121,27 @@ public class CertifInterceptor implements HandlerInterceptor{ AccessKeyVO accessKeyVO = new AccessKeyVO(); accessKeyVO.setAccessKey(request.getParameter("accessKey")); accessKeyVO.setMberId(request.getParameter("mberId")); + accessKeyVO.setCallInfo(referer); accessKeyVO = accessKeyService.selectRKey(accessKeyVO); + //인증 실패 if (accessKeyVO ==null) { - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"401\",\"message\":\"Unauthorized\"}"); + this._jsonResult(response, HttpStatus.UNAUTHORIZED); return false; } }catch(Exception ex) { ex.printStackTrace(); - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write("{\"resultCode\":\"401\",\"message\":\"Unauthorized\"}"); - + //내부 오류 + this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); return false; } } + return true; } @@ -170,8 +162,10 @@ public class CertifInterceptor implements HandlerInterceptor{ } + /////////////////////////////////////////////////////////////////////////////////////////////////// /*모바일접속 유무*/ - private boolean isMobile(HttpServletRequest request) { + /////////////////////////////////////////////////////////////////////////////////////////////////// + private boolean _isMobile(HttpServletRequest request) throws Exception{ String userAgent = request.getHeader("user-agent"); boolean mobile1 = userAgent.matches(".*(iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson).*"); boolean mobile2 = userAgent.matches(".*(LG|SAMSUNG|Samsung).*"); @@ -180,5 +174,16 @@ public class CertifInterceptor implements HandlerInterceptor{ } return false; } + + private void _jsonResult( + HttpServletResponse p_response + , HttpStatus p_HttpStatus + ) throws Exception{ + p_response.setContentType("application/json"); + p_response.setCharacterEncoding("UTF-8"); + p_response.getWriter().write("{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"); + + //return "{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"; + } } diff --git a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java deleted file mode 100644 index 45e9128..0000000 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertificationInterceptor.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.itn.mjonApi.cmn.interceptor; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; - -import com.itn.mjonApi.cmn.idgen.mapper.domain.AccessKeyVO; -import com.itn.mjonApi.cmn.idgen.mapper.domain.LettnLoginLogVO; -import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; -import com.itn.mjonApi.mjon.log.service.LettnLoginLogService; - -/** - * packageName : com.itn.mjonApi.mjon.send.web - * fileName : SendRestController - * author : hylee - * date : 2023-02-15 - * description : - * =========================================================== - * DATE AUTHOR NOTE - * ----------------------------------------------------------- - * 2023-02-15 hylee 최초 생성 - */ -//@Component -public class CertificationInterceptor implements HandlerInterceptor{ - - @Autowired - private AccessKeyService accessKeyService; - - @Autowired - private LettnLoginLogService lettnLoginLogService; - - @Override - 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); - - //step0-1.log 남기기 - //step0-2.IP 체크 - { - 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.setUserAt("U"); - - //사용자 ID - lettnLoginLogVO.setConectId(request.getParameter("mberId")); - - //device type - if(_isMobile(request)){ - lettnLoginLogVO.setDeviceType("M"); - }else{ - lettnLoginLogVO.setDeviceType("P"); - } - - //program_nm - lettnLoginLogVO.setProgrmFileNm("API"); - lettnLoginLogVO.setMenuNm("API"); - lettnLoginLogVO.setMenuNo("100"); - - //url - lettnLoginLogVO.setUrl(request.getRequestURI()); - //IP 컬럼 길이를 늘려서 비교 조건 제거함 2023-04-05 - if (lettnLoginLogVO.getUrl().length()>200){ //길이문제로 오류가 발생하는 경우도 처리하도록 수정 - lettnLoginLogVO.setUrl(lettnLoginLogVO.getUrl().substring(0,199)); - } - - lettnLoginLogService.insert(lettnLoginLogVO); - - - //step0-2.IP 체크(호출IP체크) - lettnLoginLogVO = lettnLoginLogService.selectIgnoreIpCnt(lettnLoginLogVO); - int i_ignoreCnt = lettnLoginLogVO.getCnt(); - - //IP 접근 제어 - if (i_ignoreCnt>0) { - //제한 아이피인 경우는 화면 안나옴 처리 - this._jsonResult(response, HttpStatus.FORBIDDEN); - return false; - } - - }catch(Exception ex) { - ex.printStackTrace(); - - //내부 오류 - this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); - return false; - } - - } - - //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); - - //인증 실패 - if (accessKeyVO ==null) { - - this._jsonResult(response, HttpStatus.UNAUTHORIZED); - return false; - } - - }catch(Exception ex) { - ex.printStackTrace(); - - //내부 오류 - this._jsonResult(response, HttpStatus.INTERNAL_SERVER_ERROR); - return false; - } - } - - - return true; - } - - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, - ModelAndView modelAndView) throws Exception { - // TODO Auto-generated method stub - System.out.println("=====postHandle=4=apikey=="); - - } - - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) - throws Exception { - // TODO Auto-generated method stub - System.out.println("=====afterCompletion=4=apikey=="); - - } - - - /////////////////////////////////////////////////////////////////////////////////////////////////// - /*모바일접속 유무*/ - /////////////////////////////////////////////////////////////////////////////////////////////////// - private boolean _isMobile(HttpServletRequest request) throws Exception{ - String userAgent = request.getHeader("user-agent"); - boolean mobile1 = userAgent.matches(".*(iPhone|iPod|Android|Windows CE|BlackBerry|Symbian|Windows Phone|webOS|Opera Mini|Opera Mobi|POLARIS|IEMobile|lgtelecom|nokia|SonyEricsson).*"); - boolean mobile2 = userAgent.matches(".*(LG|SAMSUNG|Samsung).*"); - if(mobile1 || mobile2) { - return true; - } - return false; - } - - private void _jsonResult( - HttpServletResponse p_response - , HttpStatus p_HttpStatus - ) throws Exception{ - p_response.setContentType("application/json"); - p_response.setCharacterEncoding("UTF-8"); - p_response.getWriter().write("{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"); - - //return "{\"resultCode\":\""+p_HttpStatus.value()+"\",\"message\":\""+p_HttpStatus.getReasonPhrase()+"\"}"; - } - -} diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java index 683b3b5..b787bf4 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java @@ -1,19 +1,23 @@ package com.itn.mjonApi.mjon.api.access.web; -import com.itn.mjonApi.cmn.idgen.mapper.domain.SendMsgVO; -import com.itn.mjonApi.cmn.msg.PlainResponse; -import com.itn.mjonApi.cmn.msg.RestResponse; -import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; -import com.itn.mjonApi.mjon.api.access.service.AccessTokenService; +import java.time.LocalDateTime; + import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import java.time.LocalDateTime; +import com.itn.mjonApi.cmn.idgen.mapper.domain.SendMsgVO; +import com.itn.mjonApi.cmn.msg.PlainResponse; +import com.itn.mjonApi.cmn.msg.RestResponse; +import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; +import com.itn.mjonApi.mjon.api.access.service.AccessTokenService; /** * @author User @@ -30,6 +34,46 @@ public class AccessKeyRestController { @Autowired private AccessTokenService accessTokenService; + // + /** + * api test for get + * @return + * + */ + @RequestMapping(value="/api/accessTest/Test", method= {RequestMethod.GET, RequestMethod.POST}) + public ResponseEntity apiAccessTestTestGet( + SendMsgVO sendMsgVO + ){ + + return ResponseEntity.ok( + new RestResponse( + HttpStatus.OK + , HttpStatus.OK.getReasonPhrase() + , LocalDateTime.now() + ) + ); + } + + // + /** + * api test for post + * @return + * + */ + @PostMapping("/api/accessTest/TestPost") + public ResponseEntity apiAccessTestTestPost( + SendMsgVO sendMsgVO + ){ + + return ResponseEntity.ok( + new RestResponse( + HttpStatus.OK + , HttpStatus.OK.getReasonPhrase() + , LocalDateTime.now() + ) + ); + } + // /** * @param p_name_1 diff --git a/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java deleted file mode 100644 index 202a036..0000000 --- a/src/main/java/com/itn/mjonApi/mjon/api/web/AccessKeyRestController.java +++ /dev/null @@ -1,265 +0,0 @@ -package com.itn.mjonApi.mjon.api.web; - -import java.time.LocalDateTime; - -import org.json.simple.JSONObject; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.itn.mjonApi.cmn.idgen.mapper.domain.SendMsgVO; -import com.itn.mjonApi.cmn.msg.PlainResponse; -import com.itn.mjonApi.cmn.msg.RestResponse; -import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; -import com.itn.mjonApi.mjon.api.access.service.AccessTokenService; - -/** - * @author User - * - * access key( + user_id) 방식의 STEP1 api 구현 - * - */ -@RestController -public class AccessKeyRestController { - - @Autowired - private AccessKeyService accessKeyService; - - @Autowired - private AccessTokenService accessTokenService; - - // - /** - * @param p_name_1 - * @param p_name_2 - * @return - * - * 동일 내용을 1천명(?) 까지 보내기 가능 - * - * grp_id, 결과코드, 결과msg - * - * 3가지 형태로 제공 가능 - * 1.json - * 2.plain text - * - */ - @PostMapping("/api/accessKey/SendMsg") - //@GetMapping("/api/accessKey/SendMsg") - public ResponseEntity apiaccessKeysendMsg( - @ModelAttribute SendMsgVO sendMsgVO - ){ - //step2.api 처리 - //단문 문자 발송 처리 - - //step3.결과 전달 - System.out.println("name_1"); - System.out.println(sendMsgVO.getAccessKey()); - System.out.println(sendMsgVO.getMberId()); - System.out.println(sendMsgVO.getSender()); - System.out.println(sendMsgVO.getReceiver()); - System.out.println(sendMsgVO.getMsg()); - System.out.println(sendMsgVO.getMsg_type()); - System.out.println(sendMsgVO.getTitle()); - System.out.println(sendMsgVO.getRdate()); - System.out.println(sendMsgVO.getRtime()); - System.out.println(sendMsgVO.getTestmodeYn()); - System.out.println("name_12"); - - //System.out.println(p_name_1); - //System.out.println(p_name_2); - - //sendMsg 문자 발송 전 체크 사항 - //step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능) - // 1010 - - //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능) - // 1020 - - //step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 안됨 - // 1030 - - //step4.치환명 정상 여부 확인 - // 1040 - - //step5.발송일시 정상여부 확인 - // 1050 - - //step6.문자 타입에 따른 비용 처리 가능 여부 확인 - // 1060 - - return ResponseEntity.ok( - new RestResponse( - HttpStatus.OK - , "" - , LocalDateTime.now() - , "grp100" - ) - ); - - //AccessKeyVO - } - - @GetMapping("/api/accessKey/SendMsgPlain") - public String apiaccessKeysendMsgPlain( - @ModelAttribute SendMsgVO sendMsgVO - ){ - //step2.api 처리 - //단문 문자 발송 처리 - - //step3.결과 전달 - System.out.println("name_1"); - System.out.println(sendMsgVO.getAccessKey()); - System.out.println(sendMsgVO.getMberId()); - System.out.println(sendMsgVO.getSender()); - System.out.println(sendMsgVO.getReceiver()); - System.out.println(sendMsgVO.getMsg()); - System.out.println(sendMsgVO.getMsg_type()); - System.out.println(sendMsgVO.getTitle()); - System.out.println(sendMsgVO.getRdate()); - System.out.println(sendMsgVO.getRtime()); - System.out.println(sendMsgVO.getTestmodeYn()); - System.out.println("name_12"); - - //System.out.println(p_name_1); - //System.out.println(p_name_2); - - //sendMsg 문자 발송 전 체크 사항 - //step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능) - // 1010 - - //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능) - // 1020 - - //step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 안됨 - // 1030 - - //step4.치환명 정상 여부 확인 - // 1040 - - //step5.발송일시 정상여부 확인 - // 1050 - - //step6.문자 타입에 따른 비용 처리 가능 여부 확인 - // 1060 - - return this.MakePlainResponseResult( - new PlainResponse( - HttpStatus.OK - , "" - , LocalDateTime.now() - ) - , "grp100" - ); - } - - - // - /** - * @param p_name_1 - * @param p_name_2 - * @return - * - * 잔액 확인 - * 2가지 형태로 제공 가능 - * 1.json - * 2.plain text - * - */ - @GetMapping("/api/accessKey/Remain") - public ResponseEntity apiaccessKeysendRemain( - @ModelAttribute SendMsgVO sendMsgVO - ){ - //step2.api 처리 - //단문 문자 발송 처리 - - //step3.결과 전달 - System.out.println("name_1"); - System.out.println(sendMsgVO.getAccessKey()); - System.out.println(sendMsgVO.getMberId()); - System.out.println("name_12"); - - //System.out.println(p_name_1); - //System.out.println(p_name_2); - - //remain 체크 사항 - //step1.잔액 확인 여부 체크 - // 5010 - - JSONObject jsonObject = new JSONObject(); - - jsonObject.put("SMS", "50"); - jsonObject.put("LMS", "30"); - jsonObject.put("MMS", "20"); - - return ResponseEntity.ok( - new RestResponse( - HttpStatus.OK - , "" - , LocalDateTime.now() - , jsonObject - ) - ); - - //AccessKeyVO - } - - // - /** - * @param p_name_1 - * @param p_name_2 - * @return - * - * 잔액 확인 - * - */ - @GetMapping("/api/accessKey/RemainPlain") - public String apiaccessKeysendRemainPlain( - @ModelAttribute SendMsgVO sendMsgVO - ){ - //step2.api 처리 - //단문 문자 발송 처리 - - //step3.결과 전달 - System.out.println("name_1"); - System.out.println(sendMsgVO.getAccessKey()); - System.out.println(sendMsgVO.getMberId()); - System.out.println("name_12"); - - //System.out.println(p_name_1); - //System.out.println(p_name_2); - - //remain 체크 사항 - //step1.잔액 확인 여부 체크 - // 5010 - - return this.MakePlainResponseResult( - new PlainResponse( - HttpStatus.OK - , "" - , LocalDateTime.now() - ) - , "50|30|20" - ); - - //AccessKeyVO - } - - ///////////////////////////////////////////////////////////////////////////////////// - // - // - // private function - // - // - private String MakePlainResponseResult(PlainResponse plainResponse, String p_code) { - String v_ret = ""; - v_ret = Integer.toString(plainResponse.getResultCode()) - + "|" + plainResponse.getMessage() - + "|" + p_code; - - return v_ret; - } -} From 2b4fbc7773826c7e29d038e7fc21f1822929ef63 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 12 May 2023 16:24:07 +0900 Subject: [PATCH 3/3] =?UTF-8?q?2023-05-12=2016:23=20=ED=83=80=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=EC=97=90=EC=84=9C=20=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84=EB=A1=9D=20@CrossOrigin=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=ED=95=98=EC=98=80=EC=8A=B5=EB=8B=88=EB=8B=A4?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmn/interceptor/CertifInterceptor.java | 2 +- .../access/web/AccessKeyRestController.java | 27 +++++-------------- 2 files changed, 7 insertions(+), 22 deletions(-) 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 df223db..c4a402f 100644 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java +++ b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java @@ -77,7 +77,7 @@ public class CertifInterceptor implements HandlerInterceptor{ lettnLoginLogVO.setDeviceType("P"); } - //program_nm + //program_nm - API 값 고정 lettnLoginLogVO.setProgrmFileNm("API"); lettnLoginLogVO.setMenuNm("API"); lettnLoginLogVO.setMenuNo("100"); diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java index b787bf4..32d7059 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java @@ -6,9 +6,9 @@ import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -40,6 +40,7 @@ public class AccessKeyRestController { * @return * */ + @CrossOrigin("*") // 모든 요청에 접근 허용 @RequestMapping(value="/api/accessTest/Test", method= {RequestMethod.GET, RequestMethod.POST}) public ResponseEntity apiAccessTestTestGet( SendMsgVO sendMsgVO @@ -54,25 +55,6 @@ public class AccessKeyRestController { ); } - // - /** - * api test for post - * @return - * - */ - @PostMapping("/api/accessTest/TestPost") - public ResponseEntity apiAccessTestTestPost( - SendMsgVO sendMsgVO - ){ - - return ResponseEntity.ok( - new RestResponse( - HttpStatus.OK - , HttpStatus.OK.getReasonPhrase() - , LocalDateTime.now() - ) - ); - } // /** @@ -89,7 +71,10 @@ public class AccessKeyRestController { * 2.plain text * */ - @GetMapping("/api/accessKey/SendMsg") + + @CrossOrigin("*") // 모든 요청에 접근 허용 + //@GetMapping("/api/accessKey/SendMsg") + @RequestMapping(value="/api/accessKey/SendMsg", method= {RequestMethod.GET, RequestMethod.POST}) public ResponseEntity apiaccessKeysendMsg( SendMsgVO sendMsgVO ){