2011-09-19 9 views
1

httpとhttpsでアクセスするために別のドメインを使用する必要のあるWebアプリケーションで作業しています。今私は次の問題に直面している:ユーザーがhttpドメインにアクセスしている間、いくつかの情報がセッション内に格納されています。ユーザーがhttpsに移行すると、セッションIDが失われます(セッションIDはHTTPドメインに関連付けられているCookieに格納されているため)。Spring Security:ドメイン間でセッションを渡す

ドメインを切り替えた後、正しいセッションをユーザーに再接続するにはどうすればよいですか?

が右requires-channel="httpsによって引き起こされるリダイレクト前にいくつかのJavaコードを実行することが可能です」送られ

編集:?私を使用することができる春のセキュリティで特定の何かがあるかもしれない考えていた、しかし、これまでドキュメントで何も見つけることができませんでした。

編集2:ちょうど私が行う必要があるのは、ChannelProcessingFilterをカスタム実装に置き換えることです。私が新しいクラスをdefaの代わりに受け入れる春のセキュリティを作るために何をしなければならないかult ChannelProcessingFilter。注:私はSpring 3.0を使用しています。

答えて

1

我々は右のデフォルトChannelProcessor前に実行し、URLパラメータとしてJSESSIONIDを含んでリダイレクトを送信しますカスタムChannelProcessorを供給することによって、問題を解決しました。次に、デフォルトのChannelProcessorはこのURLを使用し、別のリダイレクトをhttpドメインに送信します。

Header edit Location ^(.*)\?jsessionid=([^&]*)&(.*)$ $1;jsessionid=$2?$3 
Header edit Location ^(.*)\?jsessionid=([^&]*)$ $1;jsessionid=$2 

URLその後、Tomcatが評価され、同じセッションを続けている:我々は、Apacheでいくつかの追加のディレクティブを持っているセッションIDの形式は - ;「」バックにURLパラメータを変更するには

別のドメインに

関連する問題