본문 바로가기

Spring Boot 실력 상승!

Window에서 Mustache 사용 시 userName값 이상

springboot 프로젝트 시 이상한 현상을 발견했다.

 

대략적으로 설명하자면 메인페이지 연결 시, 컨트롤러에서 세션에 유저정보가 남아있는지 체크 후, 유저정보가 남아있으면 Model에 'userName'이라는 이름으로 attribute를 셋팅하여 index.mustache에 넘긴다.

 

그래서 메인화면으로 접속하면 이렇게 로그인 버튼이 나오고,

 

 

로그인을 하고 나면 이렇게 로그인 한 유저의 이름과 로그아웃 버튼이 나온다.

 

 

그런데 로그인을 하지 않았음에도 불구하고 계속 로그인 상태를 유지하고있는 현상이 발견되었다.

 

세션에 정보가 남아있나 싶어 WAS를 내리고 재구동해보았지만 해당 문제는 계속되었고, 브라우저 세션을 체크해보았으나 세션은 비어있는 상태였다.

 

브라우저 세션에 아무것도 없다.

혹시나 싶어 attribute의 이름을 userName -> userNames로 바꾸어보았더니 정상 작동을 하는 것이었다.

다시 userName으로 바꾸었더니 해당 현상이 다시 나타났다.

 

그러면 session에 정보가 없어 Model에 아무것도 담지않고 넘겨주지만, 화면단에서 해당 값을 가져온다는 소린데..

 

이 값이 도대체 어디서 가져오는지 도무지 모르겠던 차에, 나와 같은 현상을 겪으신 분의 github을 발견했다.

 

그 분의 말에 따르면 OS가 Window일 경우, userName을 사용하면 Window의 로그인 계정 이름을 가져온다고 한다.

 

홀리쉿.. 레알이자너..

왜 이런 일이 발생하는지 궁금하여 mustache의 github에서 issue를 살펴보았지만 단서는 없었다. 스택오버플로에도 관련 글은 없는 듯 했다.

 

개인적으로 파보고 모르겠으면 issue에 내가 올려서 버그인지 확인해야겠다.