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 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
|
||||
public void sessionCreated(HttpSessionEvent se) {
|
||||
@ -77,7 +77,7 @@ public class SessionConfig implements HttpSessionListener {
|
||||
log.debug("setLoginInfo : " + sessionId + ", " + oUser.getSnsType() + ", " + oUser.getSnsId());
|
||||
loginSessions.put(sessionId, oUser);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 지방문화원 해당 세션에 로그인 처리 가능한 SNS 유형 및 SNS ID 정보를 리턴한다.
|
||||
* 리턴유형 문자열 배열
|
||||
@ -91,7 +91,7 @@ public class SessionConfig implements HttpSessionListener {
|
||||
|
||||
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) {
|
||||
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
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests()
|
||||
.antMatchers("/login/login*.do").permitAll()
|
||||
.antMatchers("/login/logout*.do").permitAll()
|
||||
.antMatchers("/login/naver/*.do").permitAll()
|
||||
.antMatchers("/login/google/*.do").permitAll()
|
||||
.antMatchers("/login/kakao/*.do").permitAll()
|
||||
.antMatchers("/login/**").permitAll()
|
||||
.antMatchers("/member/*.do").permitAll()
|
||||
.antMatchers("/member/*.ajax").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_MISMATCH = "ERR_CODE_LOGIN_MISMATCH"; /* 오류코드 : ID,PW일치하지 않음 */
|
||||
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 loginOauth(HttpServletRequest req, String oauthServiceName, String snsId, String joinCouncilCd, String councilJsessionId);
|
||||
@ -30,4 +33,6 @@ public interface LoginService
|
||||
public DataApiResVO logout(DataApiReqVO reqVO);
|
||||
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
|
||||
// 해당 지방문화원에 미등록된 경우, 정보제공 동의로 이동 처리 필요
|
||||
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 생성하여 로그인 처리
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(nLoginVO.getUsername(), nLoginVO.getPassword());
|
||||
NlibLoginVO nlibLoginedVO = loginProcSecurity(req, token);
|
||||
@ -195,7 +206,9 @@ public class LoginServiceImpl implements LoginService
|
||||
return loginDAO.selectCouncilInfoByDnsHost(councilDnsHost);
|
||||
}
|
||||
|
||||
|
||||
public int activateDormantAcc(NlibLoginVO loginVO) {
|
||||
return loginDAO.activateDormantAcc(loginVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -18,14 +18,15 @@
|
||||
, A.ADDRESS_DETAIL
|
||||
, A.BIRTHDAY
|
||||
, A.STATUS
|
||||
, DATE_FORMAT(A.DMT_PROC_DD, '%Y%m%d%H%i%s') AS DMT_PROC_DD
|
||||
, A.JOIN_DATE
|
||||
, A.VERIFICATION_DD
|
||||
, A.LAST_ACCESS_DD
|
||||
, DATE_FORMAT(A.VERIFICATION_DD, '%Y%m%d%H%i%s') AS VERIFICATION_DD
|
||||
, DATE_FORMAT(A.LAST_ACCESS_DD, '%Y%m%d%H%i%s') AS LAST_ACCESS_DD
|
||||
, A.LEAVE_SITE_DATE
|
||||
, 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_DD
|
||||
, DATE_FORMAT(A.MOD_DD, '%Y%m%d%H%i%s') AS MOD_DD
|
||||
, B.SNS_TYPE
|
||||
, B.SNS_ID
|
||||
, 'ROLE_USER' AS AUTHORITY_LIST
|
||||
@ -50,6 +51,16 @@
|
||||
LIMIT 1
|
||||
</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 INTO SM_ACC_LOG /* 접속로그 */
|
||||
( USER_ID
|
||||
|
||||
@ -25,6 +25,11 @@ member.new.url = /member/snsCertForm.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
|
||||
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
|
||||
nculture.login.redirect.uri = /login/loginForm.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
|
||||
|
||||
# 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