2009-03-31 3 views
0

저는 한 응용 프로그램에서 다른 응용 프로그램으로 이동/이동하는 작업과 관련된 작업을합니다. 응용 프로그램은 별도의 JVM에 있습니다.sessionId를 사용하여 특정 세션을 다시 얻으려면 어떻게해야합니까?

다른 응용 프로그램으로 이동하는 동안 세션 ID를 추적합니다. 그러나, 나는 앞뒤로 이동, 새로운 세션이 만들어집니다 도착. 자식 응용 프로그램에서 부모 응용 프로그램으로 다시 이동할 때 보유한 sessionId를 사용하여 같은 세션을 다시 얻을 수있는 방법이 있습니까?

환경 : J2EE with WebSphere.

답변

0

이 방법이 도움이되는지 잘 모르겠지만 하나의 애플리케이션 시나리오에서는 모든 응답과 함께 sessionID를 제출하고 URL, 쿠키 또는 숨겨진 필드에 저장하십시오. 서버에 새로운 요청을 제출하면 sessionID도 제출되어 서버 측에서이를 해결합니다. 한 응용 프로그램에서 다른 응용 프로그램으로 전환하는 것을 이해하면 응용 프로그램에서 사용자에게 sessionID를 제공해야합니다. 세션 ID를 쿠키에 저장하면 쿠키가 특정 서버 도메인으로 제한되어 있기 때문에 가능하지 않습니다. 따라서 세션이 여전히 유효하고 sessionID가 응용 프로그램이 시작된 후 다시 시작되었는지 확인하십시오.

1

Mork0075에서 언급했듯이 sessionID는 쿠키 이름과 서버 도메인에 연결됩니다. 별도의 JVM에서 두 개의 응용 프로그램에 동일한 서버 도메인을 사용하는 경우 응용 프로그램간에 전환 할 때 세션을 유지 관리하는 두 가지 옵션이 있습니다.

긴 샷 : 1) 세션 복제를 위해 데이터베이스를 사용하는 경우 두 응용 프로그램 모두에 대해 동일한 데이터베이스를 사용할 수 있으며 두 응용 프로그램 모두에서 sessionID를 사용할 수 있습니다. 여기서 볼 수있는 한 가지 문제는 세션의 객체가 양측에서 사용 가능하지 않을 수 있다는 것입니다. 왜냐하면 코드가 다를 것이기 때문입니다. 양측에서 코드 등을 유지하지 않으면 아마 상대방의 세션 객체를 손상시킬 수 있습니다. 그 물건들은 이용 가능했다.

가능성 : 2) 두 앱 중 하나에서 세션에 다른 쿠키 이름을 사용하십시오. 기본적으로 세션은 JSESSIONID를 쿠키로 사용하며 두 번째 앱으로 전환하면 해당 쿠키를 기반으로 세션을 찾은 다음 찾을 수 없습니다. 따라서 새로운 세션 ID를 생성하여 브라우저로 다시 전송하므로 세션 ID가 변경되고 원래 앱으로 전환 할 때 사용할 수 없습니다. 그러나 두 번째 응용 프로그램의 sessionID를 다른 것으로 변경하면 (JSESSIONID2) 브라우저가 올바른 응용 프로그램에서 유효한 두 개의 유효한 세션 ID로 끝납니다. 응용 프로그램 서버의 세션 관리 -> 쿠키 사용 페이지 아래에서 관리 콘솔을 통해 이름을 변경할 수 있습니다.

0

수동으로하지 않아도됩니다. 대부분의 응용 프로그램 서버는 단일 응용 프로그램에 로그인하여 동일한 SSO 도메인에있는 모든 응용 프로그램에 액세스 할 수 있도록 SSO (Single Sign On)를 지원합니다. 응용 프로그램 서버는 세션 ID를 추적하여 웹 응용 프로그램과 관련된 HTTPSession 객체에 연결합니다.

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.base.doc/info/aes/ae/csec_sso.html

관련 문제