login 수정(2)

This commit is contained in:
김현욱
2025-11-28 15:25:20 +09:00
parent ab5bf80c8e
commit 262d5a163a
6 changed files with 36 additions and 21 deletions

View File

@@ -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.LoginRequest;
import com.wb.domainserver.domain.gcone.login.vo.LoginUser; import com.wb.domainserver.domain.gcone.login.vo.LoginUser;
import com.wb.domainserver.domain.gcone.mbr.mbr.mapper.BOMbrMapper; 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.service.BOMbrService;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
@@ -194,6 +195,8 @@ public class LoginService {
@Transactional @Transactional
public void createRenewLoginToken(HttpServletRequest request, HttpServletResponse response) { public void createRenewLoginToken(HttpServletRequest request, HttpServletResponse response) {
log.debug("rcreateRenewLoginToken stsrt");
String realm = RealmContextHolder.getRealm().toLowerCase(); String realm = RealmContextHolder.getRealm().toLowerCase();
String refreshToken = CookieUtils.getCookieValue("RFT", request); String refreshToken = CookieUtils.getCookieValue("RFT", request);
@@ -219,7 +222,9 @@ public class LoginService {
//회원정보 조회 //회원정보 조회
LoginRequest req = new LoginRequest(); LoginRequest req = new LoginRequest();
req.setUserInnb(userInnb); 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")); req.setSopmalCd(request.getParameter("authSopmalCd"));
LoginUser loginUser = null; LoginUser loginUser = null;
@@ -234,10 +239,13 @@ public class LoginService {
//토큰 발급 및 토큰 업데이트 //토큰 발급 및 토큰 업데이트
loginUser.setRealm(realm); loginUser.setRealm(realm);
log.debug("rcreateRenewLoginToken 토큰 업데이트");
TokenInfo updateTokenInfo = tokenService.updateToken(loginUser); TokenInfo updateTokenInfo = tokenService.updateToken(loginUser);
//토큰 쿠키 생성 //토큰 쿠키 생성
log.debug("rcreateRenewLoginToken 쿠키 생성");
createLoginCookie(updateTokenInfo, request, response); createLoginCookie(updateTokenInfo, request, response);
log.debug("rcreateRenewLoginToken ENd");
} }

View File

@@ -126,6 +126,8 @@ public class MngrLoginController {
loginRequest.setConectBrwsr(browser); loginRequest.setConectBrwsr(browser);
log.debug("mngr :: /login/mngr :: loginRequest :: {}", loginRequest);
loginUser = service.mngrLogin(loginRequest); loginUser = service.mngrLogin(loginRequest);
@@ -204,6 +206,7 @@ public class MngrLoginController {
//리다이렉트 url 있을 경우 해당 url로 이동 //리다이렉트 url 있을 경우 해당 url로 이동
if(StringUtils.hasText(request.getParameter("redirect_uri"))){ if(StringUtils.hasText(request.getParameter("redirect_uri"))){
redirectUri = request.getParameter("redirect_uri"); redirectUri = request.getParameter("redirect_uri");
log.debug("리다이렉트 url 있을 경우 redirect_uri :: {}", redirectUri);
} }
response.sendRedirect(redirectUri); response.sendRedirect(redirectUri);
@@ -224,23 +227,6 @@ public class MngrLoginController {
String queryString = request.getParameter("authSopmalCd"); String queryString = request.getParameter("authSopmalCd");
log.debug("mngr loginCheck getParameter authSopmalCd :: {}", queryString); 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(); BOJobUserVO vo = new BOJobUserVO();
vo.setMngrId(loginRequest.getUsername()); vo.setMngrId(loginRequest.getUsername());

View File

@@ -11,6 +11,7 @@ import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.realm.RealmContextHolder; import com.wb.domainserver.realm.RealmContextHolder;
import com.wb.domainserver.security.authentication.AnonymousUser; import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.util.CookieUtils;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import jakarta.servlet.http.Cookie; import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest; 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"))){ if( "/mngr/main".equals(request.getRequestURI()) && !StringUtil.isEmpty(request.getParameter("authSopmalCd"))){
cookieAuthSopmalCd = request.getParameter("authSopmalCd"); cookieAuthSopmalCd = request.getParameter("authSopmalCd");
CookieUtils.createCookie("authSopmalCd",cookieAuthSopmalCd, "/", true, request, response);
logger.debug("cookieAuthSopmalCd param3 :: {}", cookieAuthSopmalCd); logger.debug("cookieAuthSopmalCd param3 :: {}", cookieAuthSopmalCd);
} else { } else {
if (request.getCookies() != null) { if (request.getCookies() != null) {

View File

@@ -60,6 +60,7 @@ public class RealmFilter implements Filter {
//root context 접근 할 경우 처리 //root context 접근 할 경우 처리
String reqUri = request.getRequestURI(); String reqUri = request.getRequestURI();
logger.debug("RealmFilter reqUri: {}", reqUri);
if(reqUri == null || "/".equals(reqUri) || "/sopmal".equals(reqUri)){ if(reqUri == null || "/".equals(reqUri) || "/sopmal".equals(reqUri)){
//사용자 일 경우 //사용자 일 경우

View File

@@ -29,6 +29,7 @@ public class JwtHelper {
public String createToken(LoginUser claims) { public String createToken(LoginUser claims) {
log.debug("JwtHelper.createToken start");
Map<String, Object> claimsMap = new HashMap<>(); Map<String, Object> claimsMap = new HashMap<>();
claimsMap.put("mbrId", claims.getUserId()); claimsMap.put("mbrId", claims.getUserId());
claimsMap.put("sopmalCd", claims.getSopmalCd()); claimsMap.put("sopmalCd", claims.getSopmalCd());
@@ -42,7 +43,7 @@ public class JwtHelper {
claimsMap.put("mngrDv", claims.getMngrDv()); claimsMap.put("mngrDv", claims.getMngrDv());
claimsMap.put("teamInnb", claims.getTeamInnb()); claimsMap.put("teamInnb", claims.getTeamInnb());
claimsMap.put("teamMngrAt", claims.getTeamMngrAt()); claimsMap.put("teamMngrAt", claims.getTeamMngrAt());
log.debug("JwtHelper.createToken 1:{}",claims.getSysDvCd());
List<String> roleTypes = new ArrayList<>(); List<String> roleTypes = new ArrayList<>();
String roleType = switch (claims.getSysDvCd()){ String roleType = switch (claims.getSysDvCd()){
case "02" -> "ROLE_ADMIN"; case "02" -> "ROLE_ADMIN";
@@ -50,9 +51,11 @@ public class JwtHelper {
default -> "ROLE_USER"; default -> "ROLE_USER";
}; };
log.debug("JwtHelper.createToken 2");
roleTypes.add(roleType); roleTypes.add(roleType);
claimsMap.put("roleType", roleTypes); claimsMap.put("roleType", roleTypes);
log.debug("JwtHelper.createToken end");
return jwtHandler.createToken(claimsMap, maxAgeSeconds, secretKey); return jwtHandler.createToken(claimsMap, maxAgeSeconds, secretKey);
} }

View File

@@ -26,19 +26,26 @@ public class TokenService {
* *
* */ * */
public TokenInfo createToken(LoginUser loginUser){ public TokenInfo createToken(LoginUser loginUser){
log.debug("createToken start:{}", loginUser);
String accessToken = accessTokenHelper.createToken(loginUser); String accessToken = accessTokenHelper.createToken(loginUser);
log.debug("createToken 1");
Claims accessTokenClaims = accessTokenHelper.getClaims(accessToken); Claims accessTokenClaims = accessTokenHelper.getClaims(accessToken);
log.debug("createToken 2");
//리프레쉬 토큰은 회원고유번호와 회원구분코드만 저장 //리프레쉬 토큰은 회원고유번호와 회원구분코드만 저장
LoginUser refreshUser = new LoginUser(); LoginUser refreshUser = new LoginUser();
log.debug("createToken 3");
refreshUser.setUserInnb(loginUser.getUserInnb()); refreshUser.setUserInnb(loginUser.getUserInnb());
log.debug("createToken 4");
refreshUser.setMbrDvCd(loginUser.getMbrDvCd()); refreshUser.setMbrDvCd(loginUser.getMbrDvCd());
log.debug("createToken 5");
refreshUser.setSysDvCd(loginUser.getSysDvCd()); refreshUser.setSysDvCd(loginUser.getSysDvCd());
log.debug("createToken 6");
String refreshToken = refreshTokenHelper.createToken(refreshUser); String refreshToken = refreshTokenHelper.createToken(refreshUser);
log.debug("createToken 7");
Claims refreshTokenClaims = refreshTokenHelper.getClaims(refreshToken); Claims refreshTokenClaims = refreshTokenHelper.getClaims(refreshToken);
log.debug("createToken end");
return TokenInfo.of(accessToken, accessTokenClaims, refreshToken, refreshTokenClaims); return TokenInfo.of(accessToken, accessTokenClaims, refreshToken, refreshTokenClaims);
} }
@@ -103,12 +110,20 @@ public class TokenService {
@Transactional @Transactional
public TokenInfo updateToken(LoginUser loginUser){ public TokenInfo updateToken(LoginUser loginUser){
log.debug("updateToken start");
TokenInfo token = createToken(loginUser); TokenInfo token = createToken(loginUser);
log.debug("updateToken 1!");
token.setRealm(loginUser.getRealm()); token.setRealm(loginUser.getRealm());
log.debug("updateToken 2!");
token.setUserInnb(Long.parseLong(loginUser.getUserInnb())); token.setUserInnb(Long.parseLong(loginUser.getUserInnb()));
log.debug("updateToken 3!");
log.debug("updateToken tokenMapper.updateToken start");
tokenMapper.updateToken(token); tokenMapper.updateToken(token);
log.debug("updateToken tokenMapper.updateToken end");
log.debug("updateToken end :: token : {}", token);
return token; return token;
}; };