2014-03-31 3 views
1

인증을 위해 Shiro 프레임 워크를 사용합니다.Chrome 종료 후 Jsessionid 쿠키가 만료되지 않습니다.

문제는 Chrome 브라우저를 닫고 다시 열면 보호 된 URL에 액세스 할 수 있다는 것입니다. jsessionid 쿠키를 모두 손으로 삭제하면 보호 된 URL에 대한 액세스가 금지됩니다. jsessionid 설정에서 볼 수 있습니다 : 만료 : 브라우징 세션이 끝날 때. 따라서 만료되어야하지만 그렇지 않습니다. 또한 나는이 조작을 파이어 폭스에서했고 그 문제가 없다. 어떤 방법으로 조사해도 알 수 없습니다.

P. 나는 shiro remember-me 기능을 사용하지 않습니다. 그러나 여하튼, Shiro는 사용하는 동안 또 다른 쿠키 (rememberMe)를 만듭니다.

답변

4

이것은 Chrome에서 알려진 동작입니다. 아파치 시로와 아무 관련이 없습니다. 우리는이 함께 살기로해야합니다 그래서 대부분

https://productforums.google.com/forum/#!topic/chrome/9l-gKYIUg50/discussion

구글이 고치지 않을 것 (wontfix)로이 표시했습니다 생각 : 여기에 링크입니다. 이를 극복하기 위해 FF와 Chrome이 동일한 동작을 할 수 있도록 허용 가능한 최대 값을 설정했습니다. 그렇지 않으면 FF가 창을 닫을 때 나를 로그 오프 시키지만 Chrome은 결정한 길이만큼 세션을 계속 유지할 수 있습니다.

또 다른 방법은 Shiro의 세션 유효성 검사를 트리거하여 Shiro의 만료 된 세션을 모두 회수하고이를 무효화하는 것입니다. 이렇게하면 만료 된 세션으로 로그인하려는 모든 클라이언트에게 그렇게 알려줍니다. 이 시점에서 사용자를 로그인 페이지로 리디렉션하도록 선택할 수 있습니다.

관련 문제