From 262d5a163aab408448b2294ff3610d3f9d2817b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=9A=B1?= Date: Fri, 28 Nov 2025 15:25:20 +0900 Subject: [PATCH] =?UTF-8?q?login=20=EC=88=98=EC=A0=95(2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gcone/login/service/LoginService.java | 10 +++++++++- .../mngr/login/MngrLoginController.java | 20 +++---------------- .../interceptor/mngr/MngrMenuInterceptor.java | 2 ++ .../realm/filter/RealmFilter.java | 1 + .../security/jwt/handler/JwtHelper.java | 5 ++++- .../security/jwt/service/TokenService.java | 19 ++++++++++++++++-- 6 files changed, 36 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/wb/domainserver/domain/gcone/login/service/LoginService.java b/src/main/java/com/wb/domainserver/domain/gcone/login/service/LoginService.java index 6e37ad05..dd30cbbe 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/login/service/LoginService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/login/service/LoginService.java @@ -9,6 +9,7 @@ import com.wb.domainserver.domain.gcone.login.mapper.LoginMapper; import com.wb.domainserver.domain.gcone.login.vo.LoginRequest; import com.wb.domainserver.domain.gcone.login.vo.LoginUser; import com.wb.domainserver.domain.gcone.mbr.mbr.mapper.BOMbrMapper; +import com.wb.domainserver.realm.util.UrlExtractor; import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; import com.wb.domainserver.exception.WnbtRestException; @@ -194,6 +195,8 @@ public class LoginService { @Transactional public void createRenewLoginToken(HttpServletRequest request, HttpServletResponse response) { + log.debug("rcreateRenewLoginToken stsrt"); + String realm = RealmContextHolder.getRealm().toLowerCase(); String refreshToken = CookieUtils.getCookieValue("RFT", request); @@ -219,7 +222,9 @@ public class LoginService { //회원정보 조회 LoginRequest req = new LoginRequest(); req.setUserInnb(userInnb); - req.setAccessUrl(request.getParameter("accessUrl")); + String accessUrl = UrlExtractor.getOriginalHost(request); + req.setAccessUrl(accessUrl); + log.debug("createRenewLoginToken accessUrl:{}",accessUrl); req.setSopmalCd(request.getParameter("authSopmalCd")); LoginUser loginUser = null; @@ -234,10 +239,13 @@ public class LoginService { //토큰 발급 및 토큰 업데이트 loginUser.setRealm(realm); + log.debug("rcreateRenewLoginToken 토큰 업데이트"); TokenInfo updateTokenInfo = tokenService.updateToken(loginUser); //토큰 쿠키 생성 + log.debug("rcreateRenewLoginToken 쿠키 생성"); createLoginCookie(updateTokenInfo, request, response); + log.debug("rcreateRenewLoginToken ENd"); } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/login/MngrLoginController.java b/src/main/java/com/wb/domainserver/domain/mngr/login/MngrLoginController.java index ffbe387f..ea5a7ebf 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/login/MngrLoginController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/login/MngrLoginController.java @@ -126,6 +126,8 @@ public class MngrLoginController { loginRequest.setConectBrwsr(browser); + log.debug("mngr :: /login/mngr :: loginRequest :: {}", loginRequest); + loginUser = service.mngrLogin(loginRequest); @@ -204,6 +206,7 @@ public class MngrLoginController { //리다이렉트 url 있을 경우 해당 url로 이동 if(StringUtils.hasText(request.getParameter("redirect_uri"))){ redirectUri = request.getParameter("redirect_uri"); + log.debug("리다이렉트 url 있을 경우 redirect_uri :: {}", redirectUri); } response.sendRedirect(redirectUri); @@ -224,23 +227,6 @@ public class MngrLoginController { String queryString = request.getParameter("authSopmalCd"); log.debug("mngr loginCheck getParameter authSopmalCd :: {}", queryString); -// String authSopmalCd = ""; -// if (!StringUtil.isEmpty(queryString) && sopmalList.contains(queryString)) { -// // 로그인 요청 쇼핑몰 param 저장 -// authSopmalCd = queryString; -// -// } else { -// if("".equals(authVO.getSopmalCd()) || authVO.getSopmalCd() == null){ -// //쿠키에 권한 리스트중 첫번째 쇼핑몰 param 저장 -// if (!sopmalList.isEmpty()) { -// authSopmalCd = sopmalList.get(0); -// } else { -// return false; -// } -// } else { -// authSopmalCd = authVO.getSopmalCd(); -// } -// } BOJobUserVO vo = new BOJobUserVO(); vo.setMngrId(loginRequest.getUsername()); diff --git a/src/main/java/com/wb/domainserver/interceptor/mngr/MngrMenuInterceptor.java b/src/main/java/com/wb/domainserver/interceptor/mngr/MngrMenuInterceptor.java index 3a456f82..992d4dd8 100644 --- a/src/main/java/com/wb/domainserver/interceptor/mngr/MngrMenuInterceptor.java +++ b/src/main/java/com/wb/domainserver/interceptor/mngr/MngrMenuInterceptor.java @@ -11,6 +11,7 @@ import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; import com.wb.domainserver.realm.RealmContextHolder; import com.wb.domainserver.security.authentication.AnonymousUser; import com.wb.domainserver.security.authentication.MemberJwtContextHolder; +import com.wb.domainserver.util.CookieUtils; import com.wb.domainserver.util.string.StringUtil; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; @@ -135,6 +136,7 @@ public class MngrMenuInterceptor implements HandlerInterceptor { //관리자 메인 진입시 쇼핑몰 선택했을 경우(로그인시) if( "/mngr/main".equals(request.getRequestURI()) && !StringUtil.isEmpty(request.getParameter("authSopmalCd"))){ cookieAuthSopmalCd = request.getParameter("authSopmalCd"); + CookieUtils.createCookie("authSopmalCd",cookieAuthSopmalCd, "/", true, request, response); logger.debug("cookieAuthSopmalCd param3 :: {}", cookieAuthSopmalCd); } else { if (request.getCookies() != null) { diff --git a/src/main/java/com/wb/domainserver/realm/filter/RealmFilter.java b/src/main/java/com/wb/domainserver/realm/filter/RealmFilter.java index 890f90e8..b7753c70 100644 --- a/src/main/java/com/wb/domainserver/realm/filter/RealmFilter.java +++ b/src/main/java/com/wb/domainserver/realm/filter/RealmFilter.java @@ -60,6 +60,7 @@ public class RealmFilter implements Filter { //root context 접근 할 경우 처리 String reqUri = request.getRequestURI(); + logger.debug("RealmFilter reqUri: {}", reqUri); if(reqUri == null || "/".equals(reqUri) || "/sopmal".equals(reqUri)){ //사용자 일 경우 diff --git a/src/main/java/com/wb/domainserver/security/jwt/handler/JwtHelper.java b/src/main/java/com/wb/domainserver/security/jwt/handler/JwtHelper.java index 5db54d2d..e7890c2e 100644 --- a/src/main/java/com/wb/domainserver/security/jwt/handler/JwtHelper.java +++ b/src/main/java/com/wb/domainserver/security/jwt/handler/JwtHelper.java @@ -29,6 +29,7 @@ public class JwtHelper { public String createToken(LoginUser claims) { + log.debug("JwtHelper.createToken start"); Map claimsMap = new HashMap<>(); claimsMap.put("mbrId", claims.getUserId()); claimsMap.put("sopmalCd", claims.getSopmalCd()); @@ -42,7 +43,7 @@ public class JwtHelper { claimsMap.put("mngrDv", claims.getMngrDv()); claimsMap.put("teamInnb", claims.getTeamInnb()); claimsMap.put("teamMngrAt", claims.getTeamMngrAt()); - + log.debug("JwtHelper.createToken 1:{}",claims.getSysDvCd()); List roleTypes = new ArrayList<>(); String roleType = switch (claims.getSysDvCd()){ case "02" -> "ROLE_ADMIN"; @@ -50,9 +51,11 @@ public class JwtHelper { default -> "ROLE_USER"; }; + log.debug("JwtHelper.createToken 2"); roleTypes.add(roleType); claimsMap.put("roleType", roleTypes); + log.debug("JwtHelper.createToken end"); return jwtHandler.createToken(claimsMap, maxAgeSeconds, secretKey); } diff --git a/src/main/java/com/wb/domainserver/security/jwt/service/TokenService.java b/src/main/java/com/wb/domainserver/security/jwt/service/TokenService.java index aef7715d..4596cc56 100644 --- a/src/main/java/com/wb/domainserver/security/jwt/service/TokenService.java +++ b/src/main/java/com/wb/domainserver/security/jwt/service/TokenService.java @@ -26,19 +26,26 @@ public class TokenService { * * */ public TokenInfo createToken(LoginUser loginUser){ - + log.debug("createToken start:{}", loginUser); String accessToken = accessTokenHelper.createToken(loginUser); + log.debug("createToken 1"); Claims accessTokenClaims = accessTokenHelper.getClaims(accessToken); - + log.debug("createToken 2"); //리프레쉬 토큰은 회원고유번호와 회원구분코드만 저장 LoginUser refreshUser = new LoginUser(); + log.debug("createToken 3"); refreshUser.setUserInnb(loginUser.getUserInnb()); + log.debug("createToken 4"); refreshUser.setMbrDvCd(loginUser.getMbrDvCd()); + log.debug("createToken 5"); refreshUser.setSysDvCd(loginUser.getSysDvCd()); + log.debug("createToken 6"); String refreshToken = refreshTokenHelper.createToken(refreshUser); + log.debug("createToken 7"); Claims refreshTokenClaims = refreshTokenHelper.getClaims(refreshToken); + log.debug("createToken end"); return TokenInfo.of(accessToken, accessTokenClaims, refreshToken, refreshTokenClaims); } @@ -103,12 +110,20 @@ public class TokenService { @Transactional public TokenInfo updateToken(LoginUser loginUser){ + log.debug("updateToken start"); TokenInfo token = createToken(loginUser); + log.debug("updateToken 1!"); token.setRealm(loginUser.getRealm()); + log.debug("updateToken 2!"); token.setUserInnb(Long.parseLong(loginUser.getUserInnb())); + log.debug("updateToken 3!"); + log.debug("updateToken tokenMapper.updateToken start"); tokenMapper.updateToken(token); + log.debug("updateToken tokenMapper.updateToken end"); + + log.debug("updateToken end :: token : {}", token); return token; };