로그아웃 처리 개선, 로그인 접속로그 수정

This commit is contained in:
KNKIM 2021-09-13 10:10:40 +09:00
parent b0452ebd5b
commit 58f07693c5
4 changed files with 23 additions and 5 deletions

View File

@ -93,7 +93,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
.disable(); .disable();
http.logout() http.logout()
.logoutSuccessUrl("/login/loginForm.do?logout") .logoutSuccessUrl("/login/loginCouncil.do?logout=logout")
.invalidateHttpSession(true).deleteCookies("JSESSIONID") .invalidateHttpSession(true).deleteCookies("JSESSIONID")
; ;
} }

View File

@ -5,6 +5,7 @@ import java.util.HashMap;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -19,11 +20,9 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.com.ext.oauth.service.OAuthUniversalUser; import egovframework.com.ext.oauth.service.OAuthUniversalUser;
import nlib.cmm.service.NlibProperty;
import nlib.cmm.session.SessionConfig; import nlib.cmm.session.SessionConfig;
import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO; import nlib.restful.service.DataApiResVO;
import nlib.security.SecUserVO;
import nlib.user.service.LoginService; import nlib.user.service.LoginService;
import nlib.user.service.NlibLoginVO; import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil; import nlib.util.StringUtil;
@ -176,6 +175,11 @@ public class LoginServiceImpl implements LoginService
nlibLoginVO.getOrCreateAuthKey(sessionId); // SET AUTHKEY nlibLoginVO.getOrCreateAuthKey(sessionId); // SET AUTHKEY
nlibLoginVO.setIp(req.getRemoteAddr()); nlibLoginVO.setIp(req.getRemoteAddr());
// 지방문화원 정보
HttpSession session = req.getSession();
nlibLoginVO.setJoinCouncilCd((String)session.getAttribute("councilCd"));
nlibLoginVO.setJoinCouncilNm((String)session.getAttribute("councilNm"));
// 실제 SecurityContext authentication 정보를 등록한다. // 실제 SecurityContext authentication 정보를 등록한다.
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
SessionConfig.removeLoginInfo(sessionId); SessionConfig.removeLoginInfo(sessionId);

View File

@ -105,6 +105,7 @@ public class LoginController {
HttpServletRequest req, HttpServletRequest req,
HttpServletResponse res, HttpServletResponse res,
HttpSession session, HttpSession session,
@RequestParam(required = false) String logout,
@RequestParam(required = false) String returnUrl, @RequestParam(required = false) String returnUrl,
@RequestParam(required = false) String callType, @RequestParam(required = false) String callType,
ModelMap model) throws Exception { ModelMap model) throws Exception {
@ -151,7 +152,8 @@ public class LoginController {
"&councilNm=" + StringUtil.encodeBase64(councilNm) + "&councilNm=" + StringUtil.encodeBase64(councilNm) +
"&councilHomeUrl=" + StringUtil.encodeBase64(councilHomeUrl) + "&councilHomeUrl=" + StringUtil.encodeBase64(councilHomeUrl) +
"&councilReturnUrl=" + StringUtil.encodeBase64(councilReturnUrl) + "&councilReturnUrl=" + StringUtil.encodeBase64(councilReturnUrl) +
"&callType=" + StringUtil.getString(callType, ""); "&logout=" + StringUtil.getString(logout, "") +
"&callType=" + StringUtil.getString(callType, "") ;
return "redirect:" + NlibProperty.getString("nculture.login.preset.redirect.url") + "?" + params; return "redirect:" + NlibProperty.getString("nculture.login.preset.redirect.url") + "?" + params;
} }
@ -209,12 +211,12 @@ public class LoginController {
redirect = councilHomeUrl + NlibProperty.getString("nculture.member.redirect.uri"); redirect = councilHomeUrl + NlibProperty.getString("nculture.member.redirect.uri");
} else { } else {
redirect = councilHomeUrl + NlibProperty.getString("nculture.login.redirect.uri"); redirect = councilHomeUrl + NlibProperty.getString("nculture.login.redirect.uri");
redirect = StringUtil.addWebParamOfUrl(redirect, "logout", logout);
} }
return "redirect:" + redirect; return "redirect:" + redirect;
} }
/** /**
* 로그인 정보 입력 화면을 출력한다. * 로그인 정보 입력 화면을 출력한다.
* *

View File

@ -169,4 +169,16 @@ public class StringUtil extends StringUtils {
return (hostName.split("\\."))[0]; return (hostName.split("\\."))[0];
} }
public static String addWebParamOfUrl(String url, String name, String value) {
if(isEmpty(url)) return url;
if(isEmpty(name)) return url;
String delim = "?";
if(url.contains("?")) {
delim = "&";
}
return url + delim + name + "=" + getString(value, "");
}
} }