Class UserSessionContextHolder

java.lang.Object
com.easydesk.context.UserSessionContextHolder

public class UserSessionContextHolder extends Object
요청을 처리하는 스레드 동안 UserSessionContext를 어디서든 꺼내 쓸 수 있게 해주는 ThreadLocal 홀더. Spring Security의 SecurityContextHolder와 같은 패턴이다. 반드시 WebSessionContextFilter 같은 곳에서 요청 시작 시 setContext, 요청 종료 시(finally) clear를 호출해야 한다. clear를 빼먹으면 Tomcat 워커 스레드가 재사용될 때 이전 요청의 값이 다음(전혀 다른 사용자의) 요청으로 새어나간다.
  • Method Details

    • setContext

      public static void setContext(UserSessionContext context)
      Filter에서 호출하여 현재 스레드에 세션 Context 바인딩
      Parameters:
      context -
    • getContext

      public static UserSessionContext getContext()
      서비스, DAO, 유틸 등 어디서나 파라미터 없이 접근 가능
      Returns:
    • isLoggedIn

      public static boolean isLoggedIn()
    • clear

      public static void clear()
      Filter에서 요청 종료 시 반드시 호출하여 스레드 메모리 정리 (Memory Leak 방지)