Java 웹 프로그래밍
[Spring] Controller 이외의 클래스에서 세션 값 사용하기
irerin07
2020. 7. 28. 16:52
728x90
import javax.servlet.http.HttpSession;
import kr.test.apiserver.domain.user.User;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
public class UserInfoUtility {
public static User getCurrentUserEntitiy() {
ServletRequestAttributes servletRequestAttribute = (ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes();
HttpSession httpSession = servletRequestAttribute.getRequest().getSession(true);
return (User)httpSession.getAttribute("UserInfo");
}
}
Spring Securoty에서 제공하는 SecurityContextHolder를 사용하지 않고 유저 정보를 전역적으로 가져올 수 있는 방법을 찾다가 알게 된 방법.
유저가 로그인에 성공하면 session에 UserInfo라는 이름으로 값을 저장해주고
이를 Controller뿐만이 아니라 다른 곳(Service, DTO...)에서도 사용하기 위해서 위와 같은 코드를 작성했다.
728x90