소스 동기화

This commit is contained in:
JSYOO 2021-09-02 16:43:38 +09:00
parent 4cde433b54
commit 4c41dfa5af
2 changed files with 164 additions and 2 deletions

View File

@ -48,6 +48,7 @@ public class NlibLoginVO implements Serializable {
private String addressDetail; /* 상세주소 */ private String addressDetail; /* 상세주소 */
private String birthday; /* 생년월일 */ private String birthday; /* 생년월일 */
private String status; /* 상태 : S정상, D탈퇴, P휴면 */ private String status; /* 상태 : S정상, D탈퇴, P휴면 */
private String dmtProcDd; /* 휴면처리일자 (YYYYMMDDHHMISS) */
private String joinDate; /* 가입일자 (YYYYMMDD) */ private String joinDate; /* 가입일자 (YYYYMMDD) */
private String verificationDd; /* 본인확인일시 (YYYYMMDDHHMISS) */ private String verificationDd; /* 본인확인일시 (YYYYMMDDHHMISS) */
private String lastAccessDd; /* 마지막접근일시 (YYYYMMDDHHMISS) */ private String lastAccessDd; /* 마지막접근일시 (YYYYMMDDHHMISS) */
@ -375,6 +376,14 @@ public class NlibLoginVO implements Serializable {
return emailVrfctNo; return emailVrfctNo;
} }
public String getDmtProcDd() {
return dmtProcDd;
}
public void setDmtProcDd(String dmtProcDd) {
this.dmtProcDd = dmtProcDd;
}
public void setEmailVrfctNo(String emailVrfctNo) { public void setEmailVrfctNo(String emailVrfctNo) {
this.emailVrfctNo = emailVrfctNo; this.emailVrfctNo = emailVrfctNo;
} }

View File

@ -32,6 +32,7 @@ import egovframework.com.ext.oauth.service.OAuthVO;
import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NlibProperty;
import nlib.cmm.session.SessionConfig; import nlib.cmm.session.SessionConfig;
import nlib.user.service.LoginService; import nlib.user.service.LoginService;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
/** /**
@ -406,7 +407,7 @@ public class LoginController {
String jsessionId = session.getId(); String jsessionId = session.getId();
String councilCd = (String)session.getAttribute("councilCd"); String councilCd = (String)session.getAttribute("councilCd");
String councilReturnUrl = (String)session.getAttribute("councilReturnUrl"); String councilReturnUrl = (String)session.getAttribute("councilReturnUrl");
OAuthUniversalUser oauthUser = SessionConfig.popLoginInfo(jsessionId); OAuthUniversalUser oauthUser = SessionConfig.getLoginInfo(jsessionId);
if(oauthUser == null || !oauthUser.isValid()) { if(oauthUser == null || !oauthUser.isValid()) {
throw new Exception("잘못된 접근입니다."); throw new Exception("잘못된 접근입니다.");
@ -419,17 +420,33 @@ public class LoginController {
// 정상 SNS 연동 로그인 // 정상 SNS 연동 로그인
if(loginResult == null) { if(loginResult == null) {
SessionConfig.removeLoginInfo(jsessionId);
// 세션에 설정된 redirect 주소 확인 // 세션에 설정된 redirect 주소 확인
return "redirect:" + councilReturnUrl; return "redirect:" + councilReturnUrl;
} }
// 휴면계좌
if(StringUtil.equalsIgnoreCase(loginResult, loginService.WRN_CODE_DORMANT)) {
redirectUrl = NlibProperty.getString("login.dormant.url");
return "redirect:" + redirectUrl;
}
// 신규 지방문화원 정보 제공 동의 필요
if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_AGREE)) {
redirectUrl = NlibProperty.getString("login.newcouncil.url");
return "redirect:" + redirectUrl;
}
// SNS 로그인은 정상적이나, NLIB 시스템에 등록되지 않은 사용자 : 회원가입으로 전환 // SNS 로그인은 정상적이나, NLIB 시스템에 등록되지 않은 사용자 : 회원가입으로 전환
model.addAttribute("error", loginResult); model.addAttribute("error", loginResult);
if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_MEMBERSHIP)) { if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_MEMBERSHIP)) {
SessionConfig.setNewMemberInfo(jsessionId, oauthUser);
SessionConfig.removeLoginInfo(jsessionId);
model.addAttribute("message", "회원가입하신 후, 이용 가능합니다."); model.addAttribute("message", "회원가입하신 후, 이용 가능합니다.");
redirectUrl = NlibProperty.getString("member.new.url"); redirectUrl = NlibProperty.getString("member.new.url");
return "redirect:" + redirectUrl; return "redirect:" + redirectUrl;
} else if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_SNSLOGIN)) { } else if(StringUtil.equalsIgnoreCase(loginResult, loginService.ERR_CODE_REQ_SNSLOGIN)) {
SessionConfig.removeLoginInfo(jsessionId);
model.addAttribute("message", "먼저 로그인할 SNS를 선택하여 로그인 바랍니다."); model.addAttribute("message", "먼저 로그인할 SNS를 선택하여 로그인 바랍니다.");
redirectUrl = NlibProperty.getString("login.back.url"); redirectUrl = NlibProperty.getString("login.back.url");
return "redirect:" + redirectUrl; return "redirect:" + redirectUrl;
@ -448,7 +465,143 @@ public class LoginController {
public String logout(HttpServletRequest req) { public String logout(HttpServletRequest req) {
return null; return null;
} }
/**
* 휴면계좌 안내 해지 선택 화면을 표출한다.
*
* @param req
* @param error
* @param message
* @param logout
* @param redirectAttrs
* @param paramMap
* @param model
* @param session
* @return
*/
@RequestMapping("/login/activateDormantAccForm.do")
public String activateDormantAccForm(
HttpServletRequest req,
RedirectAttributes redirectAttrs,
@RequestParam Map<String, String> paramMap,
Model model,
HttpSession session) {
//----------------------------------------------
// 지방문화원 사이트에서 접속한 경우, 지방문화원 정보 확인
//----------------------------------------------
String councilJsessionId = (String)session.getAttribute("councilJsessionId");
String councilDnsHost = (String)session.getAttribute("councilDnsHost");
String councilReturnUrl = (String)session.getAttribute("councilReturnUrl");
String councilHomeUrl = (String)session.getAttribute("councilHomeUrl");
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
log.debug("activateDormantAccForm > sessionid=" + session.getId());
log.debug("activateDormantAccForm > councilJsessionId = " + councilJsessionId);
log.debug("activateDormantAccForm > councilDnsHost = " + councilDnsHost);
log.debug("activateDormantAccForm > councilReturnUrl = " + councilReturnUrl);
log.debug("activateDormantAccForm > councilHomeUrl = " + councilHomeUrl);
log.debug("activateDormantAccForm > councilCd = " + councilCd);
log.debug("activateDormantAccForm > councilNm = " + councilNm);
OAuthUniversalUser oauthUser = SessionConfig.getLoginInfo(session.getId());
model.addAttribute("oauthUser", oauthUser);
return "nlib/login/activateDormantAccForm";
}
@RequestMapping("/login/agreeProvInfoForm.do")
public String agreeProvInfo(
HttpServletRequest req,
RedirectAttributes redirectAttrs,
@RequestParam Map<String, String> paramMap,
Model model,
HttpSession session) {
//----------------------------------------------
// 지방문화원 사이트에서 접속한 경우, 지방문화원 정보 확인
//----------------------------------------------
String councilJsessionId = (String)session.getAttribute("councilJsessionId");
String councilDnsHost = (String)session.getAttribute("councilDnsHost");
String councilReturnUrl = (String)session.getAttribute("councilReturnUrl");
String councilHomeUrl = (String)session.getAttribute("councilHomeUrl");
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
log.debug("activateDormantAccForm > sessionid=" + session.getId());
log.debug("activateDormantAccForm > councilJsessionId = " + councilJsessionId);
log.debug("activateDormantAccForm > councilDnsHost = " + councilDnsHost);
log.debug("activateDormantAccForm > councilReturnUrl = " + councilReturnUrl);
log.debug("activateDormantAccForm > councilHomeUrl = " + councilHomeUrl);
log.debug("activateDormantAccForm > councilCd = " + councilCd);
log.debug("activateDormantAccForm > councilNm = " + councilNm);
OAuthUniversalUser oauthUser = SessionConfig.getLoginInfo(session.getId());
model.addAttribute("oauthUser", oauthUser);
model.addAttribute("councilCd", councilCd);
model.addAttribute("councilNm", councilNm);
return "nlib/login/agreeProvInfoForm";
}
/**
* 휴면계좌 안내 해지 선택 화면을 표출한다.
*
* @param req
* @param error
* @param message
* @param logout
* @param redirectAttrs
* @param paramMap
* @param model
* @param session
* @return
*/
@RequestMapping("/login/activateDormantAcc.do")
public String activateDormantAcc(
HttpServletRequest req,
@RequestParam Map<String, String> paramMap,
Model model,
HttpSession session) {
String mbInfoId = StringUtil.getString(paramMap.get("mbInfoId"), "");
//----------------------------------------------
// 지방문화원 사이트에서 접속한 경우, 지방문화원 정보 확인
//----------------------------------------------
String councilDnsHost = (String)session.getAttribute("councilDnsHost");
String councilReturnUrl = (String)session.getAttribute("councilReturnUrl");
String councilHomeUrl = (String)session.getAttribute("councilHomeUrl");
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
log.debug("activateDormantAcc > sessionid=" + session.getId());
log.debug("activateDormantAcc > councilDnsHost = " + councilDnsHost);
log.debug("activateDormantAcc > councilReturnUrl = " + councilReturnUrl);
log.debug("activateDormantAcc > councilHomeUrl = " + councilHomeUrl);
log.debug("activateDormantAcc > councilCd = " + councilCd);
log.debug("activateDormantAcc > councilNm = " + councilNm);
OAuthUniversalUser oauthUser = SessionConfig.getLoginInfo(session.getId());
NlibLoginVO loginVO = oauthUser.getNlibVO();
if(loginVO == null || !mbInfoId.equals(loginVO.getMbInfoId())) {
model.addAttribute("code", "TIMEOUT");
model.addAttribute("message", "잘못된 접근입니다. 장시간 대기로 다시 로그인 하신 후, 이용해 주시기 바랍니다.");
return "nlib/login/activateDormantAccForm";
}
int ret = loginService.activateDormantAcc(loginVO);
if(ret < 1) {
model.addAttribute("code", "NO_TARGET");
model.addAttribute("message", "휴면사용자가 아닙니다. 다시 로그인하시거나 관리자에게 문의하여 주시기 바랍니다.");
return "nlib/login/activateDormantAccForm";
}
// 로그인 처리
return "redirect:/login/loginCouncilSSO.do";
}
// // 구글 로그인 콜백 // // 구글 로그인 콜백
// @RequestMapping(value = "/login/googleCallback.do") // @RequestMapping(value = "/login/googleCallback.do")