휴면계정처리 - 중간백업
This commit is contained in:
parent
566b4974f1
commit
29e707b87c
@ -44,10 +44,10 @@ public class SessionConfig implements HttpSessionListener {
|
|||||||
private static final String DELIMITER = "\t";
|
private static final String DELIMITER = "\t";
|
||||||
|
|
||||||
/* 세션별 로그인 처리 가능한 정보 목록 */
|
/* 세션별 로그인 처리 가능한 정보 목록 */
|
||||||
private static final Map<String, OAuthUniversalUser> loginSessions = new ConcurrentHashMap<>();
|
private static final Map<String, Object> loginSessions = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
/* 세션별 회원가입 처리 가능한 정보 목록 */
|
/* 세션별 회원가입 처리 가능한 정보 목록 */
|
||||||
private static final Map<String, OAuthUniversalUser> memberSessions = new ConcurrentHashMap<>();
|
private static final Map<String, Object> memberSessions = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sessionCreated(HttpSessionEvent se) {
|
public void sessionCreated(HttpSessionEvent se) {
|
||||||
@ -77,7 +77,7 @@ public class SessionConfig implements HttpSessionListener {
|
|||||||
log.debug("setLoginInfo : " + sessionId + ", " + oUser.getSnsType() + ", " + oUser.getSnsId());
|
log.debug("setLoginInfo : " + sessionId + ", " + oUser.getSnsType() + ", " + oUser.getSnsId());
|
||||||
loginSessions.put(sessionId, oUser);
|
loginSessions.put(sessionId, oUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 지방문화원 해당 세션에 로그인 처리 가능한 SNS 유형 및 SNS ID 정보를 리턴한다.
|
* 지방문화원 해당 세션에 로그인 처리 가능한 SNS 유형 및 SNS ID 정보를 리턴한다.
|
||||||
* 리턴유형 문자열 배열
|
* 리턴유형 문자열 배열
|
||||||
@ -91,7 +91,7 @@ public class SessionConfig implements HttpSessionListener {
|
|||||||
|
|
||||||
if(StringUtil.isEmpty(sessionId)) return null;
|
if(StringUtil.isEmpty(sessionId)) return null;
|
||||||
|
|
||||||
return loginSessions.get(sessionId);
|
return (OAuthUniversalUser)loginSessions.get(sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -147,7 +147,7 @@ public class SessionConfig implements HttpSessionListener {
|
|||||||
public static OAuthUniversalUser getNewMemberInfo(String sessionId) {
|
public static OAuthUniversalUser getNewMemberInfo(String sessionId) {
|
||||||
if(StringUtil.isEmpty(sessionId)) return null;
|
if(StringUtil.isEmpty(sessionId)) return null;
|
||||||
|
|
||||||
return memberSessions.get(sessionId);
|
return (OAuthUniversalUser)memberSessions.get(sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -61,11 +61,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
http.authorizeRequests()
|
http.authorizeRequests()
|
||||||
.antMatchers("/login/login*.do").permitAll()
|
.antMatchers("/login/**").permitAll()
|
||||||
.antMatchers("/login/logout*.do").permitAll()
|
|
||||||
.antMatchers("/login/naver/*.do").permitAll()
|
|
||||||
.antMatchers("/login/google/*.do").permitAll()
|
|
||||||
.antMatchers("/login/kakao/*.do").permitAll()
|
|
||||||
.antMatchers("/member/*.do").permitAll()
|
.antMatchers("/member/*.do").permitAll()
|
||||||
.antMatchers("/member/*.ajax").permitAll()
|
.antMatchers("/member/*.ajax").permitAll()
|
||||||
.antMatchers("/member/naver/*.do").permitAll()
|
.antMatchers("/member/naver/*.do").permitAll()
|
||||||
|
|||||||
@ -20,7 +20,10 @@ public interface LoginService
|
|||||||
public final String ERR_CODE_DISABLE = "ERR_CODE_LOGIN_DISABLE"; /* 오류코드 : 계정유효하지 않음 */
|
public final String ERR_CODE_DISABLE = "ERR_CODE_LOGIN_DISABLE"; /* 오류코드 : 계정유효하지 않음 */
|
||||||
public final String ERR_CODE_MISMATCH = "ERR_CODE_LOGIN_MISMATCH"; /* 오류코드 : ID,PW일치하지 않음 */
|
public final String ERR_CODE_MISMATCH = "ERR_CODE_LOGIN_MISMATCH"; /* 오류코드 : ID,PW일치하지 않음 */
|
||||||
public final String ERR_CODE_EXC = "ERR_CODE_LOGIN_EXC"; /* 오류코드 : 기타오류 */
|
public final String ERR_CODE_EXC = "ERR_CODE_LOGIN_EXC"; /* 오류코드 : 기타오류 */
|
||||||
|
public final String ERR_CODE_REQ_AGREE = "ERR_CODE_REQ_AGREE"; /* 오류코드 : 해당지방문화원 정보제공 동의 필요 */
|
||||||
|
|
||||||
|
public final String WRN_CODE_DORMANT = "WRN_CODE_DOMANT"; /* 경고코드 : 휴면계정 */
|
||||||
|
|
||||||
public String login(HttpServletRequest req, String username, String password);
|
public String login(HttpServletRequest req, String username, String password);
|
||||||
|
|
||||||
public String loginOauth(HttpServletRequest req, String oauthServiceName, String snsId, String joinCouncilCd, String councilJsessionId);
|
public String loginOauth(HttpServletRequest req, String oauthServiceName, String snsId, String joinCouncilCd, String councilJsessionId);
|
||||||
@ -30,4 +33,6 @@ public interface LoginService
|
|||||||
public DataApiResVO logout(DataApiReqVO reqVO);
|
public DataApiResVO logout(DataApiReqVO reqVO);
|
||||||
|
|
||||||
public HashMap<String, String> selectCouncilInfoByDnsHost(String councilDnsHost);
|
public HashMap<String, String> selectCouncilInfoByDnsHost(String councilDnsHost);
|
||||||
|
|
||||||
|
public int activateDormantAcc(NlibLoginVO loginVO);
|
||||||
}
|
}
|
||||||
@ -46,6 +46,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) */
|
||||||
@ -353,4 +354,12 @@ public class NlibLoginVO implements Serializable {
|
|||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDmtProcDd() {
|
||||||
|
return dmtProcDd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDmtProcDd(String dmtProcDd) {
|
||||||
|
this.dmtProcDd = dmtProcDd;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,4 +32,8 @@ public class LoginDAO extends EgovComAbstractDAO {
|
|||||||
public HashMap<String, String> selectCouncilInfoByDnsHost(String councilDnsHost) {
|
public HashMap<String, String> selectCouncilInfoByDnsHost(String councilDnsHost) {
|
||||||
return (HashMap<String, String>) selectOne("LoginDAO.selectCouncilInfoByDnsHost", councilDnsHost);
|
return (HashMap<String, String>) selectOne("LoginDAO.selectCouncilInfoByDnsHost", councilDnsHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int activateDormantAcc(NlibLoginVO loginVO) {
|
||||||
|
return update("LoginDAO.activateDormantAcc", loginVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -121,6 +121,17 @@ public class LoginServiceImpl implements LoginService
|
|||||||
return ERR_CODE_REQ_MEMBERSHIP;
|
return ERR_CODE_REQ_MEMBERSHIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 해당 지방문화원에 미등록된 경우, 정보제공 동의로 이동 처리 필요
|
||||||
|
if(StringUtil.isEmpty(nLoginVO.getJoinCouncilCd())) {
|
||||||
|
return ERR_CODE_REQ_AGREE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 휴면계좌 확인
|
||||||
|
if("P".equals(nLoginVO.getStatus())) {
|
||||||
|
oUser.setNlibVO(nLoginVO);
|
||||||
|
return WRN_CODE_DORMANT;
|
||||||
|
}
|
||||||
|
|
||||||
// Spring Security 로그인처리위한 token 생성하여 로그인 처리
|
// Spring Security 로그인처리위한 token 생성하여 로그인 처리
|
||||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(nLoginVO.getUsername(), nLoginVO.getPassword());
|
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(nLoginVO.getUsername(), nLoginVO.getPassword());
|
||||||
NlibLoginVO nlibLoginedVO = loginProcSecurity(req, token);
|
NlibLoginVO nlibLoginedVO = loginProcSecurity(req, token);
|
||||||
@ -195,7 +206,9 @@ public class LoginServiceImpl implements LoginService
|
|||||||
return loginDAO.selectCouncilInfoByDnsHost(councilDnsHost);
|
return loginDAO.selectCouncilInfoByDnsHost(councilDnsHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int activateDormantAcc(NlibLoginVO loginVO) {
|
||||||
|
return loginDAO.activateDormantAcc(loginVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -407,7 +408,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("잘못된 접근입니다.");
|
||||||
@ -420,17 +421,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;
|
||||||
@ -449,7 +466,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")
|
||||||
|
|||||||
@ -18,14 +18,15 @@
|
|||||||
, A.ADDRESS_DETAIL
|
, A.ADDRESS_DETAIL
|
||||||
, A.BIRTHDAY
|
, A.BIRTHDAY
|
||||||
, A.STATUS
|
, A.STATUS
|
||||||
|
, DATE_FORMAT(A.DMT_PROC_DD, '%Y%m%d%H%i%s') AS DMT_PROC_DD
|
||||||
, A.JOIN_DATE
|
, A.JOIN_DATE
|
||||||
, A.VERIFICATION_DD
|
, DATE_FORMAT(A.VERIFICATION_DD, '%Y%m%d%H%i%s') AS VERIFICATION_DD
|
||||||
, A.LAST_ACCESS_DD
|
, DATE_FORMAT(A.LAST_ACCESS_DD, '%Y%m%d%H%i%s') AS LAST_ACCESS_DD
|
||||||
, A.LEAVE_SITE_DATE
|
, A.LEAVE_SITE_DATE
|
||||||
, A.REG_ID
|
, A.REG_ID
|
||||||
, A.REG_DD
|
, DATE_FORMAT(A.REG_DD, '%Y%m%d%H%i%s') AS REG_DD
|
||||||
, A.MOD_ID
|
, A.MOD_ID
|
||||||
, A.MOD_DD
|
, DATE_FORMAT(A.MOD_DD, '%Y%m%d%H%i%s') AS MOD_DD
|
||||||
, B.SNS_TYPE
|
, B.SNS_TYPE
|
||||||
, B.SNS_ID
|
, B.SNS_ID
|
||||||
, 'ROLE_USER' AS AUTHORITY_LIST
|
, 'ROLE_USER' AS AUTHORITY_LIST
|
||||||
@ -50,6 +51,16 @@
|
|||||||
LIMIT 1
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<update id="activateDormantAcc" parameterType="NlibLoginVO">
|
||||||
|
UPDATE UAC_CLTR_DB.MB_INFO A /* 사용자정보 */
|
||||||
|
SET A.STATUS = 'S' /* 정상 */
|
||||||
|
, A.DMT_PROC_DD = NULL
|
||||||
|
, A.MOD_ID = #{mbInfoId}
|
||||||
|
, A.MOD_DD = NOW()
|
||||||
|
WHERE MB_INFO_ID = #{mbInfoId}
|
||||||
|
AND A.STATUS = 'P' /* 휴면 */
|
||||||
|
</update>
|
||||||
|
|
||||||
<insert id="insertLoginLog" parameterType="NlibLoginVO">
|
<insert id="insertLoginLog" parameterType="NlibLoginVO">
|
||||||
INSERT INTO SM_ACC_LOG /* 접속로그 */
|
INSERT INTO SM_ACC_LOG /* 접속로그 */
|
||||||
( USER_ID
|
( USER_ID
|
||||||
|
|||||||
@ -20,15 +20,20 @@ home.uri = /index.do
|
|||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
# \ub85c\uadf8\uc778/\ud68c\uc6d0\uac00\uc785\uad00\ub828 URL \uc815\ubcf4
|
# \ub85c\uadf8\uc778/\ud68c\uc6d0\uac00\uc785\uad00\ub828 URL \uc815\ubcf4
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
member.new.url = /member/selectMemberJoiningInfo.do
|
member.new.url = /member/snsCertForm.do
|
||||||
# \ub85c\uadf8\uc778 \ub610\ub294 \uad8c\ud55c\uc5c6\ub294 \uacbd\uc6b0, \ub85c\uadf8\uc778\uc73c\ub85c \uc804\ud658\ucc98\ub9ac\ub418\uc5b4 \uc811\uc18d\ub418\ub294 \ucd5c\ucd08 \uc8fc\uc18c
|
# \ub85c\uadf8\uc778 \ub610\ub294 \uad8c\ud55c\uc5c6\ub294 \uacbd\uc6b0, \ub85c\uadf8\uc778\uc73c\ub85c \uc804\ud658\ucc98\ub9ac\ub418\uc5b4 \uc811\uc18d\ub418\ub294 \ucd5c\ucd08 \uc8fc\uc18c
|
||||||
login.url = /login/loginCouncil.do
|
login.url = /login/loginCouncil.do
|
||||||
# \ub85c\uadf8\uc778 \ubb38\uc81c \ubc1c\uc0dd \uc2dc, \ub2e4\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8\ub420 \ub85c\uadf8\uc778\ud654\uba74 \uc8fc\uc18c
|
# \ub85c\uadf8\uc778 \ubb38\uc81c \ubc1c\uc0dd \uc2dc, \ub2e4\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8\ub420 \ub85c\uadf8\uc778\ud654\uba74 \uc8fc\uc18c
|
||||||
login.back.url = /login/loginForm.do
|
login.back.url = /login/loginForm.do
|
||||||
|
# \ud734\uba74\uacc4\uc88c \ud574\uc9c0\uc548\ub0b4 \uc8fc\uc18c
|
||||||
|
login.dormant.url = /login/activateDormantAccForm.do
|
||||||
|
# \uc2e0\uaddc \uc9c0\ubc29\ubb38\ud654\uc6d0 \uc815\ubcf4\uc81c\uacf5 \ub3d9\uc758 \uc8fc\uc18c
|
||||||
|
login.newcouncil.url = /login/agreeProvInfoForm.do
|
||||||
|
|
||||||
# \uc9c0\ubc29\ubb38\ud654\uc6d0\uc5d0\uc11c \uc811\uc18d\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8\ub420 URL \uc815\ubcf4
|
# \uc9c0\ubc29\ubb38\ud654\uc6d0\uc5d0\uc11c \uc811\uc18d\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8\ub420 URL \uc815\ubcf4
|
||||||
nculture.login.redirect.uri = /login/loginForm.do
|
nculture.login.redirect.uri = /login/loginForm.do
|
||||||
nculture.login.post.login.redirect.uri = /login/loginCouncilSSO.do
|
nculture.login.post.login.redirect.uri = /login/loginCouncilSSO.do
|
||||||
nculture.login.post.member.redirect.uri = /member/insertMemberInfoForm.do
|
nculture.login.post.member.redirect.uri = /member/selectMemberJoiningInfo.do
|
||||||
nculture.login.preset.redirect.url = http://nlib.nculture.org/nlib/login/loginPreSet.do
|
nculture.login.preset.redirect.url = http://nlib.nculture.org/nlib/login/loginPreSet.do
|
||||||
nculture.member.redirect.uri = /member/snsCertForm.do
|
nculture.member.redirect.uri = /member/snsCertForm.do
|
||||||
|
|
||||||
@ -58,7 +63,7 @@ dataapi.server.protocol = http
|
|||||||
dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
|
dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
|
||||||
|
|
||||||
# Aria \uc54c\uace0\ub9ac\uc998
|
# Aria \uc54c\uace0\ub9ac\uc998
|
||||||
crypto.aria.defaultKey = TheFederationOfKoreaCultureCenter027042322
|
crypto.aria.defaultKey = gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ=
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------
|
#----------------------------------------
|
||||||
|
|||||||
@ -0,0 +1,83 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : activateDormantAccForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : 휴면계좌 해지안내 및 확인 화면
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 9. 1. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 9. 1.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
|
||||||
|
<c:set var="pageTitle">휴면계좌안내</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>LoginTest</title>
|
||||||
|
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
|
||||||
|
<script src="https://apis.google.com/js/api:client.js"></script>
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function signUp(){
|
||||||
|
location.href="${pageContext.request.contextPath}/member/selectMemberJoiningInfo.do";
|
||||||
|
}
|
||||||
|
function findInfo(){
|
||||||
|
location.href="${pageContext.request.contextPath}/member/initPasswordForm.do";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h1>휴면계좌안내</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<form name="dormantForm" id="dormantForm"
|
||||||
|
action="${pageContext.request.contextPath}/login/activateDormantAcc.do"
|
||||||
|
method="post">
|
||||||
|
<br />
|
||||||
|
<input type="text" id="mbInfoId" name="mbInfoId" value="${oauthUser.nlibVO.mbInfoId}" />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
사용자 계정이 아래와 같이 휴면된 상태입니다. <br />
|
||||||
|
<br />
|
||||||
|
- 이름 : ${oauthUser.nlibVO.name}<br />
|
||||||
|
- 로그인ID : ${oauthUser.nlibVO.loginUserId}<br />
|
||||||
|
- 이메일 : ${oauthUser.nlibVO.email}<br />
|
||||||
|
- 휴면전환일자 :
|
||||||
|
<fmt:parseDate value="${oauthUser.nlibVO.dmtProcDd}" var="dmtProcDd" pattern="yyyyMMddHHmmss"/>
|
||||||
|
<fmt:formatDate value="${dmtProcDd}" pattern="yyyy.MM.dd HH:mm"/><br />
|
||||||
|
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
정상적인 서비스를 이용하시려면 휴면상태를 해제하여야 합니다. <br />
|
||||||
|
휴면상태를 해제하시겠습니까?
|
||||||
|
<br/>
|
||||||
|
<input type="submit" id="activateBtn" name="activateBtn" value="예, 해제합니다." />
|
||||||
|
<input type="button" id="inactivateBtn" name="" value="홈화면 이동" onclick="javascript: location.href = '${pageContext.request.contextPath}';" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
80
src/main/webapp/WEB-INF/jsp/nlib/login/agreeProvInfoForm.jsp
Normal file
80
src/main/webapp/WEB-INF/jsp/nlib/login/agreeProvInfoForm.jsp
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<%
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* @Class Name : agreeProvInfoForm.jsp
|
||||||
|
*
|
||||||
|
* @Description : 신규 지방문화원 정보제공 동의 화면
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------------ -------- ---------------------------
|
||||||
|
* @ 2021. 9. 1. KNKIM 최초 생성
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||||
|
* @since 2021. 9. 1.
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
|
||||||
|
<c:set var="pageTitle">지방문화원 정보제공 동의</c:set>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>LoginTest</title>
|
||||||
|
<script src = "//developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.2.js" charset="utf-8"></script>
|
||||||
|
<script src="https://apis.google.com/js/api:client.js"></script>
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function signUp(){
|
||||||
|
location.href="${pageContext.request.contextPath}/member/selectMemberJoiningInfo.do";
|
||||||
|
}
|
||||||
|
function findInfo(){
|
||||||
|
location.href="${pageContext.request.contextPath}/member/initPasswordForm.do";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h1>${pageTitle }</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<form name="agreeForm" id="agreeForm"
|
||||||
|
action="${pageContext.request.contextPath}/login/agreeProvInfo.do"
|
||||||
|
method="post">
|
||||||
|
<br />
|
||||||
|
<input type="text" id="mbInfoId" name="mbInfoId" value="${oauthUser.nlibVO.mbInfoId}" />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
사용자 계정이 아래와 같이 휴면된 상태입니다. <br />
|
||||||
|
<br />
|
||||||
|
- 이름 : ${oauthUser.nlibVO.name}<br />
|
||||||
|
- 로그인ID : ${oauthUser.nlibVO.loginUserId}<br />
|
||||||
|
- 이메일 : ${oauthUser.nlibVO.email}<br />
|
||||||
|
- 동의대상 지방문화원 : ${councilCd } ${councilNm }
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
"${councilNm }" 서비스를 이용하시려면 해당 문화원에 사용자 정보제공에 동의가 필요합니다.<br />
|
||||||
|
동의하시겠습니까?
|
||||||
|
<br/>
|
||||||
|
<input type="submit" id="activateBtn" name="activateBtn" value="예, 동의합니다." />
|
||||||
|
<input type="button" id="inactivateBtn" name="" value="홈화면 이동" onclick="javascript: location.href = '${pageContext.request.contextPath}';" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue
Block a user