diff --git a/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java b/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java
index a3eeeb99..c2650af1 100644
--- a/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java
+++ b/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java
@@ -77,8 +77,8 @@ public class OAuthLogin {
this.oauthVO = oauthVO;
}
- public String getOAuthURL() {
- return this.oauthService.getAuthorizationUrl();
+ public String getOAuthURL(String state) {
+ return this.oauthService.getAuthorizationUrl(state);
}
public OAuthUniversalUser getUserProfile(String code) throws Exception {
diff --git a/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java b/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java
index 42b697cd..25010259 100644
--- a/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java
+++ b/src/main/java/egovframework/com/ext/oauth/service/OAuthVO.java
@@ -12,6 +12,7 @@ public class OAuthVO implements OAuthConfig {
private String clientId;
private String clientSecret;
private String redirectUrl;
+ private String state;
private DefaultApi20 api20Instance;
private String profileUrl;
@@ -24,7 +25,7 @@ public class OAuthVO implements OAuthConfig {
this.clientId = clientId;
this.clientSecret = clientSecret;
this.redirectUrl = redirectUrl;
-
+ this.state = state;
this.isGoogle = StringUtil.equalsIgnoreCase(GOOGLE_SERVICE_NAME, serviceName);
this.isNaver = StringUtil.equalsIgnoreCase(NAVER_SERVICE_NAME, serviceName);
this.isKakao = StringUtil.equalsIgnoreCase(KAKAO_SERVICE_NAME, serviceName);
@@ -117,5 +118,13 @@ public class OAuthVO implements OAuthConfig {
public void setKakao(boolean isKakao) {
this.isKakao = isKakao;
}
+
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
}
diff --git a/src/main/java/nlib/user/web/LoginController.java b/src/main/java/nlib/user/web/LoginController.java
index 1b2db72c..dab13260 100644
--- a/src/main/java/nlib/user/web/LoginController.java
+++ b/src/main/java/nlib/user/web/LoginController.java
@@ -264,17 +264,18 @@ public class LoginController extends NlibCommonController {
//----------------------------------------------
// SNS 연동 URL 생성
//----------------------------------------------
+ String encCouncilJsessionId = AriaCrypto.encode(councilJsessionId);
OAuthLogin naverLogin = new OAuthLogin(naverAuthVO, callType, councilJsessionId);
- log.debug("naverLogin.getOAuthURL() = "+naverLogin.getOAuthURL());
- model.addAttribute("naverUrl", naverLogin.getOAuthURL());
+ log.debug("naverLogin.getOAuthURL() = "+naverLogin.getOAuthURL(encCouncilJsessionId));
+ model.addAttribute("naverUrl", naverLogin.getOAuthURL(encCouncilJsessionId));
OAuthLogin googleLogin = new OAuthLogin(googleAuthVO, callType, councilJsessionId);
- log.debug("googleLogin.getOAuthURL() = "+googleLogin.getOAuthURL());
- model.addAttribute("googleUrl", googleLogin.getOAuthURL());
+ log.debug("googleLogin.getOAuthURL() = "+googleLogin.getOAuthURL(encCouncilJsessionId));
+ model.addAttribute("googleUrl", googleLogin.getOAuthURL(encCouncilJsessionId));
OAuthLogin kakaoLogin = new OAuthLogin(kakaoAuthVO, OAuthLogin.CALL_TYPE_LOGIN, councilJsessionId);
- log.debug("kakaoLogin.getOAuthURL() = "+kakaoLogin.getOAuthURL());
- model.addAttribute("kakaoUrl", kakaoLogin.getOAuthURL());
+ log.debug("kakaoLogin.getOAuthURL() = "+kakaoLogin.getOAuthURL(encCouncilJsessionId));
+ model.addAttribute("kakaoUrl", kakaoLogin.getOAuthURL(encCouncilJsessionId));
model.addAttribute("error", error);
model.addAttribute("message", message);
@@ -316,14 +317,12 @@ public class LoginController extends NlibCommonController {
HttpServletRequest req,
@PathVariable String callType,
@PathVariable String oauthServiceName,
- @RequestParam(required = false) String councilJsessionId,
- @RequestParam(required = false) String code,
+ @RequestParam(required = false) String code,
+ @RequestParam(name = "state" , required = false) String councilJsessionId,
@RequestParam(required = false) String error,
Model model,
HttpSession session) throws Exception {
-
String redirectUrl = NlibProperty.getString("home.uri"); // "/index.do";
-
if(StringUtil.isEmpty(councilJsessionId)) {
model.addAttribute("message", "잘못된 접근입니다. (접속문화원 세션정보 오류)");
model.addAttribute("loginBtnYn", "Y");
@@ -331,7 +330,6 @@ public class LoginController extends NlibCommonController {
return "nlib/login/loginMessage";
}
councilJsessionId = AriaCrypto.decode(councilJsessionId);
-
OAuthUniversalUser tmpUser = SessionConfig.getLoginInfo(councilJsessionId);
if(tmpUser == null || StringUtil.isEmpty(tmpUser.getCouncilHomeUrl())) {
model.addAttribute("message", "잘못된 접근입니다. (접속문화원 정보 오류)");
diff --git a/src/main/resources/egovframework/spring/context-oauth.xml b/src/main/resources/egovframework/spring/context-oauth.xml
index fe564a68..3dc598f8 100644
--- a/src/main/resources/egovframework/spring/context-oauth.xml
+++ b/src/main/resources/egovframework/spring/context-oauth.xml
@@ -8,7 +8,7 @@
로그인할 때 이용할 SNS를 선택하세요!
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/login/loginFormPopup.jsp b/src/main/webapp/WEB-INF/jsp/nlib/login/loginFormPopup.jsp index d098eaaf..b015c6a0 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/login/loginFormPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/login/loginFormPopup.jsp @@ -46,8 +46,8 @@회원가입하고 대출/열람 서비스를 이용해보세요!
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/login/memberSnsForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/login/memberSnsForm.jsp index d07e094d..98f8c6cf 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/login/memberSnsForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/login/memberSnsForm.jsp @@ -63,8 +63,8 @@