2011-09-19 4 views
1

http 및 https를 통한 액세스에 다른 도메인을 사용해야하는 웹 응용 프로그램에서 작업하고 있습니다. 이제 다음과 같은 문제에 봉착했습니다. 사용자가 http 도메인에 액세스하는 동안 일부 정보가 세션 내에 저장됩니다. 사용자가 https로 전환하면 세션 ID가 http 도메인과 연결된 쿠키에 저장되므로 사용자가 속한 세션 정보가 손실됩니다.스프링 보안 : 도메인 간 세션 전달

도메인을 전환 한 후 사용자에게 올바른 세션을 어떻게 다시 연결할 수 있습니까?

requires-channel="https에 의해 발생 리디렉션하기 전에 몇 가지 자바 코드를 실행하는 것이 가능 "전송

편집 : 내가 사용할 수있는 봄 보안의 특정 뭔가가있을 수 있습니다 생각, 하지만 지금까지는 설명서에서 아무것도 찾을 수 없었습니다.

편집 2 : 그냥 내가해야 할 일은 사용자 정의 구현으로 ChannelProcessingFilter를 대체하는 것입니다. 나는 봄 보안을 위해서 새로운 클래스를 받아들이도록해야만한다. ult ChannelProcessingFilter. 참고 : 저는 Spring 3.0을 사용하고 있습니다.

답변

1

우리는 바로 기본 ChannelProcessor 전에 실행하고 URL 매개 변수로 JSESSIONID를 포함하는 리디렉션을 전송됩니다 사용자 정의 ChannelProcessor을 제공하여 문제를 해결합니다. 그런 다음 기본 ChannelProcessor는이 URL을 사용하여 http 도메인에 다른 리디렉션을 보냅니다.

는 뒷면에 URL-매개 변수를 변경하려면 ";"- 세션 ID의 형식으로 우리는 아파치에 몇 가지 추가 지침이 있습니다

URL은 다음 바람둥이에 의해 평가와 같은 세션을 계속합니다

Header edit Location ^(.*)\?jsessionid=([^&]*)&(.*)$ $1;jsessionid=$2?$3 
Header edit Location ^(.*)\?jsessionid=([^&]*)$ $1;jsessionid=$2 
다른 도메인에 있습니다.