Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
eb1ccbdfd6
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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,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);
|
||||||
}
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -25,6 +25,11 @@ member.new.url = /member/snsCertForm.do
|
|||||||
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
|
||||||
@ -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