2017-09-08 4 views
0

다른 브라우저 및 시스템에서 쿠키 기본 세션 관리를 사용하는 동안 내 웹 응용 프로그램이 URL에 jsessionid를 전달했습니다.브라우저에서 저장 한 쿠키 및 jsessionid가 URL 인 경우 jsessionid가 전달되었습니다.

이 문제를 해결하기 위해 로케일 저장소에서 저장된 쿠키 및 jsessionid를 삭제 한 다음 URL 재 작성 대신 쿠키 기반 세션 관리를 사용하여 시작합니다.

누군가 쿠키 기반 관리를 사용하기 위해이 쿠키가 저장된 쿠키와 jsessionid 응용 프로그램을 중지하는 이유를 설명 할 수 있습니까? 애플리케이션에서 기본 세션 관리 만 쿠키로해야합니다.

환경 : 사전에

크롬 브라우저, 스트럿츠 2, 톰캣 7, 자바 8

감사합니다.

답변

0

jsessionid은 Java 응용 프로그램/웹 서버가 사용자 세션을 추적하는 데 사용하는 특수 쿠키입니다 (예 : 이미 로그인 한 사용자). 서버에 대한 첫 번째 요청에는 브라우저에서 보낸 쿠키가 없습니다. 따라서 서버는 클라이언트가 쿠키를 지원하는지 여부를 알 수 없습니다. 이 서버의 경우 쿠키와 URL (URL 다시 쓰기)에 jsessionid을 보냅니다. 하지만 다음 요청에 대해서는 쿠키가 사용 가능할 것입니다 (이전 요청 브라우저에서 서버가 보낸 쿠키를 저장하고 동일한 컨텍스트에서 이미 쿠키가 있으므로 쿠키를 보냅니다). 따라서 다음 요청 이후에는 URL에 jsessionid이 표시되지 않습니다. 서버가 COOKIE 기반 추적 만 사용하도록하려면 아래 조각을 추가하십시오. web.xml

<session-config> 
    <!-- Only cookie based tracking --> 
    <tracking-mode>COOKIE</tracking-mode> 
</session-config> 
관련 문제