[JAVA] 세션정보(session)를 가져오는 방법
1. 세션정보 가져오는 방법
ServletRequestAttributes servletRequestAttribute
= (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession httpSession = servletRequestAttribute.getRequest().getSession(true);
2. 스프링 시큐리티 사용중인 경우 세션정보 가져오는 방법
User user = (User) authentication.getPrincipal();
또는
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
3. RequestContextListener를 사용하여 세션을 가져오는 방법
HttpServletRequest의 인자 전달없이 직접 Request 정보를 가져오는 방법을 사용한다.
web.xml 파일에 리스너 설정한 후 java 소스상에서 현재의 HttpServletRequest 객체를 가져온 후 세션정보를 확인하는 방법이다.
이 방법은 SERVICE 또는 DAO 등 기타 클래스에서 Session 정보를 가져오고자 할 때 사용하면 된다.
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
ServletRequestAttributes sra =
(ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest req = sra.getRequest();
HttpSession session = req.getSession();
[REFERENCE]