휴면계정처리 - 중간백업

This commit is contained in:
KNKIM 2021-09-02 16:24:06 +09:00
parent 566b4974f1
commit 29e707b87c
11 changed files with 379 additions and 20 deletions

View File

@ -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) {
@ -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);
} }
/** /**

View File

@ -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()

View File

@ -20,6 +20,9 @@ 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);
@ -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);
} }

View File

@ -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;
}
} }

View File

@ -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);
}
} }

View File

@ -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);
}

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;
/** /**
@ -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;
@ -450,6 +467,142 @@ public class LoginController {
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")

View File

@ -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

View File

@ -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=
#---------------------------------------- #----------------------------------------

View File

@ -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>

View 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>