From 64d0af61eef128664d9eac6f97618a09a1244be3 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Fri, 17 Sep 2021 10:04:15 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B5=AC=EA=B8=80=20=EB=8F=99=EC=9D=98=20?= =?UTF-8?q?=EC=B7=A8=EC=86=8C=EC=8B=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/user/web/LoginController.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java index ee989eb0..498ec0ee 100644 --- a/src/main/java/nlib/user/web/LoginController.java +++ b/src/main/java/nlib/user/web/LoginController.java @@ -296,15 +296,33 @@ public class LoginController { @PathVariable String callType, @PathVariable String oauthServiceName, @RequestParam(required = false) String code, + @RequestParam(required = false) String error, Model model, HttpSession session) throws Exception { - - log.debug("loginOauthCallback > sessionid=" + session.getId()); - - String redirectUrl = NlibProperty.getString("home.uri"); // "/index.do"; String councilJsessionId = (String)session.getAttribute("councilJsessionId"); String councilCd = (String)session.getAttribute("councilCd"); + String councilHomeUrl = (String)session.getAttribute("councilHomeUrl"); + String redirectUrl = NlibProperty.getString("home.uri"); // "/index.do"; + + if(StringUtil.isNotEmpty(error)) { + + // 구글 정보 제공 동의 거절한 경우 + // https://nlib-dev.nculture.org/member/google/callback.do?error=access_denied + if(StringUtil.equalsIgnoreCase("access_denied", error)) { + if(OAuthLogin.CALL_TYPE_LOGIN.equalsIgnoreCase(callType)) { + // 로그인인 경우 + redirectUrl = councilHomeUrl + NlibProperty.getString("nculture.login.post.login.redirect.uri"); + } else { + // 회원가입인 경우 + redirectUrl = councilHomeUrl + NlibProperty.getString("nculture.login.post.member.redirect.uri"); + } + redirectUrl = StringUtil.addWebParamOfUrl(redirectUrl, "message", "서비스를 이용하시려면 정보제공 동의가 필요합니다."); + return "redirect:" + redirectUrl; + } + } + + log.debug("loginOauthCallback > sessionid=" + session.getId()); log.debug("oauthLoginCallback: code = ", code); @@ -337,7 +355,6 @@ public class LoginController { //----------------------------------------------- // 해당 처리기로 전환 //----------------------------------------------- - String councilHomeUrl = (String)session.getAttribute("councilHomeUrl"); if(OAuthLogin.CALL_TYPE_LOGIN.equalsIgnoreCase(callType)) { // 로그인인 경우 SessionConfig.setLoginInfo(councilJsessionId, oauthUser);