다중 WAS 환경에서 세션 정보의 불일치 문제, 로그인 정합성을 확보할 수 있는 방안에 대해 고민한 흔적을 기록하여 남긴다.
스레드로컬 변수는 다중was 환경에서 스레드 간의 일관성을 확보하기에는 적합하지 않은 방법이다.
애초에 was가 달라지면 스레드를 실행하는 웹컨테이너가 달라지고, 스레드 자체도 달라진다.
사실상 스레드 로컬 변수가 의미가 없다는 판단을 하였으나, 주문관리 동시성 제어에 개선방안으로써 현재 방안보다 더 적합하다는 판단 및 협의 하에 스레드로컬 변수는 동시성 제어 개선 방안으로 활용하였다.
현재의 환경에서는 특정 서비스를 호출할 경우 인증정보변경이력을 확인하고 변경이력 존재시 세션정보와 일치하는지 확인하는 작업을 진행하는 것이 가장 best practicc는 아니더라도 most efficient한 결과였다.
기존 방안으로 이를 was filter 과정에서 실시하여 전역적으로 적용할 수 있도록 하였으나, 다른 was 환경 자체가 최상위 관리자 급만 확인할 수 있는 MIS시스템이라서 특정 서비스에만 해당 이력변경 확인작업을 진행하였다.
연봉정보 등 민감성 정보 조회가 그 대상이며, 서비스 호출 시점에 변경이력을 확인하고 현재 세션정보(부서, 직급)와 일치하는지 확인작업을 거친다.
이후 일치여부에 따라 서비스 진행 혹은 강제 로그아웃을 진행할지 결정하도록 구성하였다.
세션 불일치 해결방안1 - https://overcome-the-limits.tistory.com/544
세션 불일치 해결방안2 - https://overcome-the-limits.tistory.com/546?category=910209