로그인 후 jaxws에 연결할 수있는 webservice가 있습니다. 모든 것이 완벽하게 작동하며 로그인과 비밀번호를 전달하고 로그인했습니다. WS 서버에서이 사용자에 대한 세션을 만들고 있습니다. 결국 나는 모든 세션 속성을 삭제하고 session.invalidate()를 호출한다.Tomcat은 session.invalidate()를 호출 한 후 세션을 무효화하지 않습니다.
속성이 제거되었지만 tomcat 관리자를 입력하면 세션이 계속 표시됩니다.
내가 로그인했을 때 세션은 setMaxInactiveInterval을 7200 초 (2 시간)로 설정했습니다. 이 시간이 지나면 세션이 삭제되지만 더 이상 세션을 사용하지 않으면 빈 세션을 2 시간 동안 유지하는 의미가 무엇입니까?
해당 세션을 완전하게 파괴 할 수있는 방법이 있습니까? 2 시간을 기다리지 않고?
"로그 아웃"웹 서비스 요청이 있습니까? 세션 속성을 삭제하지 않아도됩니다. 세션을 무효화하면이를 수행해야합니다. HttpSessionListener 또는 HttpSessionBindingListener 객체가 등록되어 있습니까? 그렇다면 실제로 세션이 만료되는 Tomcat의 기능을 방해 할 수 있습니다. 2 시간을 기다릴 필요가 없습니다. –
등록 된 두 명의 리스너가 없습니다. 네, 일종의 로그 아웃입니다. 나는 2 시간을 기다릴 필요가 없다는 것을 안다. 그러나 여전히 세션은 활동 중이다. 세션에서 속성을 제거하는 부분을 제거합니다. –
현재 disconnect() 메소드에 session.setMaxInactiveInterval (1)이 있고 세션이 30 초 ~ 1 분 후에 소멸됩니다. 2 시간 후에는 더 좋지만 확실한 해결책은 아닙니다. 이 메소드에 session.invalidate()를 추가하면 30 분 후에 세션이 만료됩니다. 왜 그런 일이 벌어지는 지 모르지만 세션은 파기해야하지만 그렇지 않습니다 :/ –