diff --git a/src/main/java/kcc/com/cmm/LoginVO.java b/src/main/java/kcc/com/cmm/LoginVO.java
index b3615254..fca5b341 100644
--- a/src/main/java/kcc/com/cmm/LoginVO.java
+++ b/src/main/java/kcc/com/cmm/LoginVO.java
@@ -124,6 +124,8 @@ public class LoginVO implements Serializable{
/*20221012 대시보드를 위해 직급 코드 추가*/
private String ofcpsNm;
+ private String phone;
+
public String getId() {
return id;
}
@@ -429,5 +431,13 @@ public class LoginVO implements Serializable{
public void setCertNum(String certNum) {
this.certNum = certNum;
}
+ public String getPhone() {
+ return phone;
+ }
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+
}
diff --git a/src/main/java/kcc/kccadr/adjreqmgr/service/AdjReqMgrVO.java b/src/main/java/kcc/kccadr/adjreqmgr/service/AdjReqMgrVO.java
index 66615c1f..9e28ff18 100644
--- a/src/main/java/kcc/kccadr/adjreqmgr/service/AdjReqMgrVO.java
+++ b/src/main/java/kcc/kccadr/adjreqmgr/service/AdjReqMgrVO.java
@@ -252,6 +252,10 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
* */
private String smsSendSeq; // SMS 발송 로그 PK
+ private String phone; // 수신번호
+ private String userId;
+ private String smsSendTypeCd; // 발송유형 - CC052
+ private String certNum;
public AdjReqMgrVO getAdrVO() {
return adrVO;
@@ -1193,9 +1197,30 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
public void setSmsSendSeq(String smsSendSeq) {
this.smsSendSeq = smsSendSeq;
}
-
-
-
+ public String getPhone() {
+ return phone;
+ }
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ public String getUserId() {
+ return userId;
+ }
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+ public String getSmsSendTypeCd() {
+ return smsSendTypeCd;
+ }
+ public void setSmsSendTypeCd(String smsSendTypeCd) {
+ this.smsSendTypeCd = smsSendTypeCd;
+ }
+ public String getCertNum() {
+ return certNum;
+ }
+ public void setCertNum(String certNum) {
+ this.certNum = certNum;
+ }
}
diff --git a/src/main/java/kcc/kccadr/cmm/service/impl/SMSOracleServiceImpl.java b/src/main/java/kcc/kccadr/cmm/service/impl/SMSOracleServiceImpl.java
index cd29c9cc..bb188a00 100644
--- a/src/main/java/kcc/kccadr/cmm/service/impl/SMSOracleServiceImpl.java
+++ b/src/main/java/kcc/kccadr/cmm/service/impl/SMSOracleServiceImpl.java
@@ -13,6 +13,7 @@ import java.net.URLEncoder;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Random;
import javax.annotation.Resource;
@@ -705,15 +706,16 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
int bytes = adjReqMgrVO.getSendMsg().getBytes("euc-kr").length; // 발송메시지 바이트수
if (bytes > 90) {
- sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
+// sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrMmsCustomSend(adjReqMgrVO); // SMS 이력 등록 장문 > 전자조정
} else {
- sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
+// sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrSmsCustomSend(adjReqMgrVO); // SMS 이력 등록 단문 > 전자조정
}
//sms 발송 관리 테이블에 저장
adjReqMgrVO.setRpplNm("");
+ // SMS 발송 로그 pk idgen
String smsSendSeq = idgenService.getNextStringId();
adjReqMgrVO.setSmsSendSeq(smsSendSeq);
diff --git a/src/main/java/kcc/kccadr/kccadrCom/web/otpCertUtil.java b/src/main/java/kcc/kccadr/kccadrCom/web/OtpCertUtil.java
similarity index 56%
rename from src/main/java/kcc/kccadr/kccadrCom/web/otpCertUtil.java
rename to src/main/java/kcc/kccadr/kccadrCom/web/OtpCertUtil.java
index 69296376..cbecf097 100644
--- a/src/main/java/kcc/kccadr/kccadrCom/web/otpCertUtil.java
+++ b/src/main/java/kcc/kccadr/kccadrCom/web/OtpCertUtil.java
@@ -1,33 +1,38 @@
package kcc.kccadr.kccadrCom.web;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
+import kcc.com.cmm.LoginVO;
+import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
-import kcc.let.uss.umt.service.UserManageVO;
-
-public class otpCertUtil {
+public class OtpCertUtil {
/**
- * @Method Name : mjonSmsCertCheck
- * @작성일 : 2022. 8. 25.
+ * @Method Name : otpCert
+ * @작성일 : 2022. 10. 12.
* @작성자 : 이준호
- * @Method 설명 : 미허용 IP 관리자 페이지 로그인 시 SMS인증번호 체크
+ * @Method 설명 : OTP 문자인증 시 인증번호 검증
*/
- public String otpCertUtil(String phone, String certNum, String mberId) throws Exception{
-// try {
+ public String otpCert(LoginVO loginVO_P, LoginVO loginVO_R) throws Exception{
+ try {
+
+ /*
+ * select 조건
+ * loginVO_P - certNum
+ * loginVO_P - phone
+ * loginVO_R - uniqId
+ * smsSendTypeCd = '001' (OTP인증번호 발송)
+ * limit 1
+ *
+ * */
+
+ AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
+
+ adjReqMgrVO.setCertNum(loginVO_P.getCertNum());
+ adjReqMgrVO.setPhone(loginVO_P.getPhone());
+ adjReqMgrVO.setFrstRegisterId(loginVO_R.getUniqId());
+ adjReqMgrVO.setSmsSendTypeCd("001");
- UserManageVO userManageVO = new UserManageVO();
- // userManageVO set
- userManageVO.setCertNum(certNum);
- userManageVO.setMoblphonNo(phone);
- userManageVO.setEmplyrId(mberId);
-// // SendLogVO set
-// SendLogVO sendLogVO = new SendLogVO();
-// sendLogVO.setReceive(userManageVO.getMoblphonNo());
-//
// // 인증번호 가져오기
// sendLogVO = mjonMsgDataService.selectSysMsgLog(sendLogVO);
// if (sendLogVO == null) {
@@ -58,10 +63,10 @@ public class otpCertUtil {
// return "timeOut";
// }
// }
+ return "";
-// } catch (Exception e) {
+ } catch (Exception e) {
return "exception";
-// }
-// }
+ }
}
}
diff --git a/src/main/java/kcc/let/uat/uia/service/EgovLoginService.java b/src/main/java/kcc/let/uat/uia/service/EgovLoginService.java
index 8c464425..ddc0caa8 100644
--- a/src/main/java/kcc/let/uat/uia/service/EgovLoginService.java
+++ b/src/main/java/kcc/let/uat/uia/service/EgovLoginService.java
@@ -88,4 +88,6 @@ public interface EgovLoginService {
void updatePassMissReset(LoginVO loginVO) throws Exception;
void updateEmplyrSttusCode(LoginVO loginVO) throws Exception;
+
+ String selectUniqueId(String str) throws Exception;
}
diff --git a/src/main/java/kcc/let/uat/uia/service/impl/EgovLoginServiceImpl.java b/src/main/java/kcc/let/uat/uia/service/impl/EgovLoginServiceImpl.java
index 1409f77a..6fc064f7 100644
--- a/src/main/java/kcc/let/uat/uia/service/impl/EgovLoginServiceImpl.java
+++ b/src/main/java/kcc/let/uat/uia/service/impl/EgovLoginServiceImpl.java
@@ -275,5 +275,10 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
loginDAO.updateEmplyrSttusCode(loginVO);
}
+ @Override
+ public String selectUniqueId(String str) throws Exception{
+ return loginDAO.selectUniqueId(str);
+ }
+
}
diff --git a/src/main/java/kcc/let/uat/uia/service/impl/LoginDAO.java b/src/main/java/kcc/let/uat/uia/service/impl/LoginDAO.java
index d3014b93..9c4c161d 100644
--- a/src/main/java/kcc/let/uat/uia/service/impl/LoginDAO.java
+++ b/src/main/java/kcc/let/uat/uia/service/impl/LoginDAO.java
@@ -133,4 +133,8 @@ public class LoginDAO extends EgovAbstractDAO {
return (String)select("loginDAO.selectLoginType", str);
}
+ public String selectUniqueId(String str) throws Exception{
+ return (String)select("loginDAO.selectUniqueId", str);
+ }
+
}
diff --git a/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java b/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java
index 59280c2b..d40e78b5 100644
--- a/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java
+++ b/src/main/java/kcc/let/uat/uia/web/EgovLoginController.java
@@ -9,6 +9,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Random;
import javax.annotation.Resource;
import javax.script.ScriptEngineManager;
@@ -67,6 +68,7 @@ import kcc.com.cmm.util.StringUtil;
import kcc.com.cmm.util.WebUtil;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.cmm.service.SMSOracleService;
+import kcc.kccadr.kccadrCom.web.OtpCertUtil;
import kcc.let.sym.log.clg.service.EgovLoginLogService;
import kcc.let.sym.log.clg.service.LoginLog;
import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO;
@@ -175,6 +177,9 @@ public class EgovLoginController {
@Resource(name = "SMSOracleService")
private SMSOracleService sMSOracleService;
+
+ @Resource(name = "MjonSmsCertSendUtil")
+ private OtpCertUtil otpCertUtil;
/*
@@ -553,30 +558,30 @@ public class EgovLoginController {
*/
Boolean otpCertFlag = false;
-// if(StringUtil.isNotEmpty(loginVO.getCertNum()) && "002".equals(resultVO.getLoginTypeCd())) {
-//
-// //수신자
+ if(StringUtil.isNotEmpty(loginVO.getCertNum()) && "002".equals(resultVO.getLoginTypeCd())) {
+
+ //수신자
// String callTo = resultVO.getMoblphonNo();
// String checkNo = loginVO.getCheckNo();
// String mberId = resultVO.getId();
-//
-// /*
-// * 인증번호 비교
-// * return
-// * empty = "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요."
-// * success = "5분이내 발송 내역 비교, 인증번호 비교 시 일치"
-// * smsCertFlag = true
-// * checkNoFail = "인증번호를 확인해 주세요"
-// * timeOut = "인증번호 시간이 초과되었습니다. \\n 인증번호를 다시 발송합니다."
-// * Exception = "에러가 발생하였습니다. 다시 시도해 주세요. \\n 에러가 지속될 시 최고관리자에게 문의하세요.";
-// * final = "exception";
-// *
-// * 실패 시 passMiss 숫자++ update
-// * loginService.updatePassMissPlus(loginVO);
-// *
-// * */
-// String result = otpCertUtil.otpCertUtil(callTo, checkNo, mberId);
-//
+
+ /*
+ * 인증번호 비교
+ * return
+ * empty = "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요."
+ * success = "5분이내 발송 내역 비교, 인증번호 비교 시 일치"
+ * smsCertFlag = true
+ * checkNoFail = "인증번호를 확인해 주세요"
+ * timeOut = "인증번호 시간이 초과되었습니다. \\n 인증번호를 다시 발송합니다."
+ * Exception = "에러가 발생하였습니다. 다시 시도해 주세요. \\n 에러가 지속될 시 최고관리자에게 문의하세요.";
+ * final = "exception";
+ *
+ * 실패 시 passMiss 숫자++ update
+ * loginService.updatePassMissPlus(loginVO);
+ *
+ * */
+ String result = otpCertUtil.otpCert(loginVO, resultVO);
+
// if(result.equals("empty")) {
// loginService.updatePassMissPlus(loginVO);
// model.addAttribute("message", "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요.");
@@ -622,8 +627,8 @@ public class EgovLoginController {
// initRsa(request);
// return "uat/uia/EgovLoginUsr";
// }
-// }
-//
+ }
+
if (loginService.getUserAuth(resultVO) != null) {
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
}
@@ -2293,11 +2298,57 @@ public class EgovLoginController {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
+ try {
+ String userId = adjReqMgrVO.getUserId();
+
+ //userId -> esntlId 조회후 frstregistId에 set
+ adjReqMgrVO.setFrstRegisterId(loginService.selectUniqueId(userId));
+
+ // data set
+ adjReqMgrVO = otpDataSet(adjReqMgrVO);
+
+ sMSOracleService.insertSmsOtpCertNumSend(adjReqMgrVO);
+
+ modelAndView.addObject("result", "SUCCESS");
+
+ } catch (Exception e) {
+ System.out.println("otpCertSmsAjax Exception!!!!!!!!");
+ modelAndView.addObject("message", "인증번호 발송에 실패하였습니다.");
+ }
-
-
+
return modelAndView;
}
+
+ /**
+ * (관리자) OTP인증 인증번호 발송 Ajax data set 함수
+ *
+ * @return AdjReqMgrVO
+ */
+ private AdjReqMgrVO otpDataSet(AdjReqMgrVO adjReqMgrVO) {
+
+ // 인증번호 난수 생성
+ String contents = "전자조정시스템 OTP 인증 로그인 인증번호 문자입니다. 인증번호는 : %code% 입니다.";
+ String code = "";
+ long seed = System.currentTimeMillis();
+ Random random = new Random(seed);
+ StringBuffer randomCode = new StringBuffer();
+ for (int i = 0; i < 6; i++) {
+ code = randomCode.append(Integer.toString(random.nextInt(10))).toString();
+ }
+ contents = contents.replace("%code%", code);
+
+ // 문자내용 set
+ adjReqMgrVO.setSendMsg(contents);
+
+ // 인증번호 set
+ adjReqMgrVO.setCertNum(code);
+
+ // 문자 발송 로그
+ adjReqMgrVO.setSmsSendTypeCd("001");
+
+ return adjReqMgrVO;
+ }
}
diff --git a/src/main/resources/egovframework/sqlmap/kccadr/msg/Msg_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/kccadr/msg/Msg_SQL_Mysql.xml
index 339850e4..43507ac9 100644
--- a/src/main/resources/egovframework/sqlmap/kccadr/msg/Msg_SQL_Mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/kccadr/msg/Msg_SQL_Mysql.xml
@@ -226,7 +226,29 @@
휴대폰번호
- +인증번호 입력
@@ -230,8 +249,8 @@ function optCertNumSms(){