2017-02-18 2 views
0

Websphere Liberty 프로파일 16.0.0.2에서 Spring 어플리케이션을 실행 중입니다. 로그인에 성공하면 요청 헤더에 JSESSIONID 쿠키가 J1으로 표시됩니다. 세션을 무효화하고 새 세션을 만듭니다. 이제 다음 요청에 세션 무효화 후 예상대로 새로운 JSESSIONID 쿠키 값 (예 : J1)이 포함됩니다.JSESSIONID는 세션 무효화 후 Websphere Liberty 프로파일에 의해 재사용됩니다.

약간의 연구 끝에 server.xml을 통해 다음 세션 관리 설정을 시도했습니다.

<httpSession idLength="28" invalidateOnUnauthorizedSessionRequestException="true" cookieSecure="true" useInvalidatedId="false"></httpSession> 

여전히 동작은 동일합니다.

흥미롭게도 Tomcat 8에 동일한 웹 응용 프로그램을 배포 할 때 예상대로 다른 JSESSIONID 쿠키 값이 표시됩니다. 뭔가 WLP가 더 고집 스럽습니다. 제발 제안 해주세요.

답변

0

JSESSIONID 쿠키는 클라이언트가 지정할 수 있습니다. 이것이 의도하지 않은 경우 브라우저에서 보존되거나 캐시 된 쿠키 때문일 수 있습니다. 클라이언트 쪽에서 쿠키를 지우십시오.

Request.getRequestedSessionId() 수를 확인하기 위해해야 ​​내가 양식 로그인과 로그 아웃을 포함는 WebSphere 자유 서버에서 실행되는 웹 응용 프로그램 JSESSIONID 행동을 찾기 위해 노력

https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletRequest.html#getRequestedSessionId%28%29

0

.

1) 로그인 페이지가 표시되면 JSESSIONID 쿠키가 존재합니다. ID가 J1 인 경우를 가정 해 보겠습니다. 유효한 사용자/암호로 로그인 한 후 JSESSIONID는 예상대로 J1을 유지합니다.

2) 그런 다음 logout (ibm_security_logout) 형식으로 다음 문서에서 설명한대로 구현됩니다. 로그 아웃 후 JSESSIONSID 값이 J2로 변경된 것을 보았습니다. 그래서 나는 JSESSIONID가 무효화되고 새로 생성 된 것을 보았습니다.

https://www.ibm.com/support/knowledgecenter/SS7K4U_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tsec_pofolo.html

유일한 차이점은, 우리가 세션을 무효화하는 방법이 될 수 우리의 시나리오 사이를 참조하십시오. 다음 번에 다른 사용자로 로그인 할 수 있습니까? 세션이 무효화되지 않으면 다른 사용자 (예 : user2)로 로그인하면 이전 사용자 (예 : user1)가 세션을 계속 소유하므로 예외가 발생합니다.

0

httpSession에서 idReuse를 false로 설정해보십시오.

관련 문제