diff --git a/src/main/java/com/dbnt/faisp/config/BaseController.java b/src/main/java/com/dbnt/faisp/config/BaseController.java index 2cb3efba..cf1044fb 100644 --- a/src/main/java/com/dbnt/faisp/config/BaseController.java +++ b/src/main/java/com/dbnt/faisp/config/BaseController.java @@ -22,26 +22,16 @@ public class BaseController { private final MenuMgtService menuMgtService; @GetMapping("/") - public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser, HttpSession session) { + public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) { ModelAndView mav = null; if(loginUser == null){ mav = new ModelAndView("redirect:/login"); }else{ - loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); - session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); - session.setAttribute("commonCode", codeMgtService.getCommonCode()); mav = new ModelAndView("redirect:/dashboard"); } return mav; } - @GetMapping("/refreshSession") - public void getSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){ - loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); - session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); - session.setAttribute("commonCode", codeMgtService.getCommonCode()); - } - @GetMapping("/login") public ModelAndView goLogin() { ModelAndView mav = new ModelAndView("/login/login"); @@ -70,4 +60,10 @@ public class BaseController { ModelAndView mav = new ModelAndView("login/dashboard"); return mav; } + + public void setSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){ + loginUser.setOrganCdList(organConfigService.selectOrganListWhereUserOgCd(loginUser.getOgCd())); + session.setAttribute("menuList", menuMgtService.selectAccessMenuListWhereUserSeq(loginUser.getUserSeq())); + session.setAttribute("commonCode", codeMgtService.getCommonCode()); + } } diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index a8ba27af..141b8325 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.config; +import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,8 +12,11 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.security.web.savedrequest.HttpSessionRequestCache; +import org.springframework.security.web.savedrequest.SavedRequest; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import javax.servlet.http.HttpServletResponse; @@ -22,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; @RequiredArgsConstructor public class SecurityConfig{ private final Logger log = LoggerFactory.getLogger(getClass()); + private final BaseController baseController; @Bean public PasswordEncoder passwordEncoder(){ @@ -81,16 +86,17 @@ public class SecurityConfig{ .defaultSuccessUrl("/") // 로그인 성공 시 이동 /*.failureHandler((request, response, exception) -> { - }) // 로그인 실패시 동작 수행 + })*/ // 로그인 실패시 동작 수행 .successHandler((request, response, authentication) -> { SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request,response); + baseController.setSession((UserInfo)authentication.getPrincipal(), request.getSession()); if(savedRequest != null){ String targetUrl = savedRequest.getRedirectUrl(); new DefaultRedirectStrategy().sendRedirect(request,response,targetUrl); }else{ new DefaultRedirectStrategy().sendRedirect(request,response,"/"); } - }) // 로그인 성공시 동작 수행.*/ + }) // 로그인 성공시 동작 수행. .and() // 로그아웃 설정 .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")) // 로그아웃 시 URL 재정의 .logoutSuccessUrl("/") // 로그아웃 성공 시 redirect 이동