feat: 세션 유효기간 연장 처리

main
thkim 2026-02-26 16:10:07 +09:00
parent 0f164cf739
commit cc840a38cf
3 changed files with 40 additions and 20 deletions

View File

@ -332,40 +332,57 @@ public class LoginController {
map.put("name", name); map.put("name", name);
Map<String, Object> result = loginService.selectSearchPass(map); Map<String, Object> result = loginService.selectSearchPass(map);
ArrayList<Map<String, Object>> resultByUserIdOrEmailList = loginService.selectSearchPassByUserIdOrEmail(map); ArrayList<Map<String, Object>> resultByUserIdOrEmailList = loginService.selectSearchPassByUserIdOrEmail(map);
if( resultByUserIdOrEmailList.size() == 0 ) { if( resultByUserIdOrEmailList.size() == 0 ) {
mv.setViewName("body/account/pwNotFind"); mv.setViewName("body/account/pwNotFind");
mv.addObject("msg", name + "님의 아이디는 등록되어있지 않습니다. '개인' 또는 '기업' 사용자 체크 부분도 확인바랍니다."); mv.addObject("msg", name + "님의 아이디는 등록되어있지 않습니다. '개인' 또는 '기업' 사용자 체크 부분도 확인바랍니다. code: 1");
return mv; return mv;
} }
Map<String, Object> resultByUserIdOrEmail = resultByUserIdOrEmailList.get(0); Map<String, Object> resultByUserIdOrEmail = resultByUserIdOrEmailList.get(0);
if( resultByUserIdOrEmail == null ) {
mv.setViewName("body/account/pwNotFind");
mv.addObject("msg", name + "님의 아이디는 등록되어있지 않습니다. '개인' 또는 '기업' 사용자 체크 부분도 확인바랍니다. code: 2");
return mv;
}
map.put("DI", DI); map.put("DI", DI);
String dupinfoFromResultByUserIdOrEmail = MyUtil.getStringFromObject( resultByUserIdOrEmail.get("dupinfo") );
ArrayList<Map<String, Object>> resultByDupinfoList = loginService.selectSearchPassByDupinfo(map); ArrayList<Map<String, Object>> resultByDupinfoList = loginService.selectSearchPassByDupinfo(map);
if( resultByDupinfoList.size() == 0 ) { if( dupinfoFromResultByUserIdOrEmail == null || dupinfoFromResultByUserIdOrEmail.trim().toLowerCase().equals("null")) {
//아이디는 찾았는데 dupinfo값이 null인 경우, 허용하고 인증된 dupinfo값을 덮어씌워준다.
} else if( resultByDupinfoList.size() == 0 ) {
mv.setViewName("body/account/pwNotFind"); mv.setViewName("body/account/pwNotFind");
mv.addObject("msg", name + "님의 모마일 인증으로 가입된 계정이 존재하지 않습니다."); mv.addObject("msg", name + "님의 모일 인증으로 가입된 계정이 존재하지 않습니다. 이전 인증 시 사용된 모바일로 재인증 바랍니다.");
return mv; return mv;
} }
Map<String, Object> resultByDupinfo = resultByDupinfoList.get(0); Map<String, Object> resultByDupinfo = resultByDupinfoList.get(0);
if (result == null && resultByUserIdOrEmail != null) { if (result == null && resultByUserIdOrEmail != null) {
mv.setViewName("body/account/pwNotFind"); mv.setViewName("body/account/pwNotFind");
mv.addObject("msg", name + "님의 아이디 또는 이메일이 등록되어있지 않습니다."); mv.addObject("msg", name + "님의 아이디 또는 이메일이 등록되어있지 않습니다. code: 3"); // 보통 이메일이 틀린 경우가 많음. 아이디 또는 이메일로 검색했을 때 존재한다는 의미임.
return mv; return mv;
} else if (result == null && resultByDupinfo != null) { } else if (result == null && resultByDupinfo != null) {
mv.setViewName("body/account/pwNotFind"); mv.setViewName("body/account/pwNotFind");
mv.addObject("msg", name + "님의 아이디 또는 이메일이 등록되어있지 않습니다.."); mv.addObject("msg", name + "님의 아이디 또는 이메일이 등록되어있지 않습니다. code: 4");
return mv; return mv;
} else if (result != null && resultByDupinfo != null) {
mv.setViewName("body/account/pass_post");
mv.addObject("hdnCertNum",hdnCertNum);
mv.addObject("hdnCertification",hdnCertification);
mv.addObject("userId", userId);
mv.addObject("name", name);
mv.addObject("cls", cls);
return mv;
} else { } else {
mv.setViewName("body/account/pass_post"); mv.setViewName("body/account/pwNotFind");
mv.addObject("hdnCertNum",hdnCertNum); mv.addObject("msg", name + "님의 아이디 또는 이메일이 등록되어있지 않습니다. code: 999");
mv.addObject("hdnCertification",hdnCertification);
mv.addObject("userId", userId);
mv.addObject("name", name);
mv.addObject("cls", cls);
return mv; return mv;
} }
} }
@ -698,7 +715,7 @@ public class LoginController {
return builder.compact(); return builder.compact();
} }
public void myTest(HttpServletRequest request, HttpServletResponse response, String id) { public void setSessionExpirationTime (HttpServletRequest request, HttpServletResponse response, String id) {
if( request == null ) { if( request == null ) {
return; return;
@ -1108,7 +1125,7 @@ public class LoginController {
mv.addObject("msg", msg); mv.addObject("msg", msg);
mv.addObject("url", url); mv.addObject("url", url);
myTest(request, response, userid); setSessionExpirationTime(request, response, userid);
return mv; return mv;
// --------------- 로그인 세션 정보 초기화 END ---------------- // --------------- 로그인 세션 정보 초기화 END ----------------
@ -1233,7 +1250,7 @@ public class LoginController {
loginFlag = true; loginFlag = true;
myTest(request, response, userid); setSessionExpirationTime(request, response, userid);
return mv; return mv;
} }

View File

@ -6,9 +6,12 @@
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"> <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<property name="maxInactiveIntervalInSeconds" value="1800" /> <property name="maxInactiveIntervalInSeconds" value="2147483647" />
</bean> </bean>
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="localhost" />
<property name="port" value="6379" />
</bean>
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="localhost" /> <property name="port" value="6379" /> </bean>
</beans> </beans>

View File

@ -184,7 +184,7 @@
<select id="selectSearchPassByUserIdOrEmail" resultType="org.apache.commons.collections.map.CaseInsensitiveMap"> <select id="selectSearchPassByUserIdOrEmail" resultType="org.apache.commons.collections.map.CaseInsensitiveMap">
<![CDATA[ <![CDATA[
SELECT CLS, USER_NAME, USERID, PASSWD, TO_CHAR(DATETIME,'YYYY-MM-DD') DATETIME, CERTIFICATION_YN SELECT CLS, USER_NAME, USERID, PASSWD, TO_CHAR(DATETIME,'YYYY-MM-DD') DATETIME, CERTIFICATION_YN, DUPINFO
FROM WEB_MEMBER_IN FROM WEB_MEMBER_IN
WHERE WHERE
TRIM(CLS) = TRIM(#{cls}) AND TRIM(CLS) = TRIM(#{cls}) AND