Spring

스프링(Spring) 컨트롤러(Controller)가 아닌 곳에서 request session정보 가져오기

dev.mk 2019. 2. 6. 16:05
반응형
import java.util.Map;
import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

public class GetSessionUser {
  //컨트롤러 및 서비스에서 getSession을 하지않고 세션정보를 가져오는 메소드
    public static UserVo getUser() { 
        ServletRequestAttributes servletRequestAttribute = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); 
        HttpSession httpSession = servletRequestAttribute.getRequest().getSession(true); 

      return (UserVo)httpSession.getAttribute("userVo"); //로그인할때 userVo란 이름으로 세션정보가 담아있다.
    }
}
 
 
사용하고싶은 Controller or Service에서
GetSessionUser.getUser().get꺼내고 싶은 get하면 된다.
 

 

반응형