From 58f07693c54506ecf751f8b639c90900ab3123e4 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Mon, 13 Sep 2021 10:10:40 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EA=B0=9C=EC=84=A0,=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=A0=91=EC=86=8D=EB=A1=9C=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/security/SpringSecurityConfig.java | 2 +- .../nlib/user/service/impl/LoginServiceImpl.java | 8 ++++++-- src/main/java/nlib/user/web/LoginController.java | 6 ++++-- src/main/java/nlib/util/StringUtil.java | 12 ++++++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java index f45166a6..519cb4c0 100644 --- a/src/main/java/nlib/security/SpringSecurityConfig.java +++ b/src/main/java/nlib/security/SpringSecurityConfig.java @@ -93,7 +93,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .disable(); http.logout() - .logoutSuccessUrl("/login/loginForm.do?logout") + .logoutSuccessUrl("/login/loginCouncil.do?logout=logout") .invalidateHttpSession(true).deleteCookies("JSESSIONID") ; } diff --git a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java index 1ea365b7..f6b51110 100644 --- a/src/main/java/nlib/user/service/impl/LoginServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/LoginServiceImpl.java @@ -5,6 +5,7 @@ import java.util.HashMap; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,11 +20,9 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import egovframework.com.ext.oauth.service.OAuthUniversalUser; -import nlib.cmm.service.NlibProperty; import nlib.cmm.session.SessionConfig; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; -import nlib.security.SecUserVO; import nlib.user.service.LoginService; import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; @@ -176,6 +175,11 @@ public class LoginServiceImpl implements LoginService nlibLoginVO.getOrCreateAuthKey(sessionId); // SET AUTHKEY nlibLoginVO.setIp(req.getRemoteAddr()); + // 지방문화원 정보 + HttpSession session = req.getSession(); + nlibLoginVO.setJoinCouncilCd((String)session.getAttribute("councilCd")); + nlibLoginVO.setJoinCouncilNm((String)session.getAttribute("councilNm")); + // 실제 SecurityContext 에 authentication 정보를 등록한다. SecurityContextHolder.getContext().setAuthentication(authentication); SessionConfig.removeLoginInfo(sessionId); diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java index 0e9068f2..a38de574 100644 --- a/src/main/java/nlib/user/web/LoginController.java +++ b/src/main/java/nlib/user/web/LoginController.java @@ -105,6 +105,7 @@ public class LoginController { HttpServletRequest req, HttpServletResponse res, HttpSession session, + @RequestParam(required = false) String logout, @RequestParam(required = false) String returnUrl, @RequestParam(required = false) String callType, ModelMap model) throws Exception { @@ -151,7 +152,8 @@ public class LoginController { "&councilNm=" + StringUtil.encodeBase64(councilNm) + "&councilHomeUrl=" + StringUtil.encodeBase64(councilHomeUrl) + "&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; } @@ -209,12 +211,12 @@ public class LoginController { redirect = councilHomeUrl + NlibProperty.getString("nculture.member.redirect.uri"); } else { redirect = councilHomeUrl + NlibProperty.getString("nculture.login.redirect.uri"); + redirect = StringUtil.addWebParamOfUrl(redirect, "logout", logout); } return "redirect:" + redirect; } - /** * 로그인 정보 입력 화면을 출력한다. * diff --git a/src/main/java/nlib/util/StringUtil.java b/src/main/java/nlib/util/StringUtil.java index 8de7a671..5882e9bd 100644 --- a/src/main/java/nlib/util/StringUtil.java +++ b/src/main/java/nlib/util/StringUtil.java @@ -169,4 +169,16 @@ public class StringUtil extends StringUtils { 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, ""); + } }