Apache 2.2.3이 설치된 Tomcat 6.0.29에서 Java 응용 프로그램을 실행하고 있습니다. 로그인 페이지는 HTTPS를 사용하지만 대부분의 페이지는 HTTP를 사용합니다.Tomcat은 HTTPS에서 HTTP로 이동할 때 세션을 유지합니다.
사용자가 로그인 보호 된 페이지 (HTTP)에 액세스하려고하면 로그인 페이지 (HTTPS)로 리디렉션되고 로그인 한 다음 원래 요청한 페이지로 리디렉션됩니다. JSESSIONID 쿠키가 비보안으로 설정되고 HTTP와 HTTPS에 모두 사용되므로 위와 같은 결과가 좋습니다.
그러나 사용자가 로그인 페이지 (HTTPS)에서 시작하면 JSESSIONID 쿠키가 보안으로 설정되므로 HTTP 아래의 페이지로 리디렉션하고 새 세션을 강제 실행하여 로그인으로 리디렉션 할 때 세션을 사용할 수 없습니다 페이지를 다시보십시오. 이번에는 JSESSIONID 쿠키가 비보안으로 설정 되었기 때문에 작동합니다.
사용자가 로그인 페이지를 먼저 치면 두 번 로그인해야하는 것을 방지하려면 어떻게해야합니까?
[HTTPS 로그인 쿠키에 JSESSIONID를 저장하지 않음] (http : // stackoverflow.co.kr/questions/3963958/https-login-not-saving-the-jsessionid-in-a-cookie) – leonbloy
감사합니다. @leonbloy. 이것은 매우 예스입니다 (나는 로그인 페이지를 직접 통제하고있는 것을 제외하고). 필터에 비보안 쿠키를 추가하는 해결책이 있습니다. 하지만 해킹처럼 느껴질수록 더 좋은 방법이 될 것입니다. – rlovtang
가장 쉬운 방법은 보안 URL에 게시하는 동안 로그인 페이지가 안전하지 않은 상태에서 사이트의 98 %를 사용하는 것입니다. 그러나 중간에 사람이 URL을 변경하고 사용자 이름/암호를 수집 할 수 있으므로 보안 문제가 있습니다. – rlovtang