私のセットアップは次のとおりです
- /myApp/mainServlet/ でアクセス可能なメイン アプリケーション サーブレット
- クライアントからの SOAP 呼び出しにセキュリティ ヘッダー (ユーザー名、パスワード) を追加する小さな「手作りの」SOAP プロキシ
- (BlazeDS インターフェイスを介して) メイン サーブレットと通信し、この SOAP プロキシを介してサードパーティに SOAP 呼び出しを送信する Flex クライアント
フレックス クライアントには、最初にメイン サーブレットと通信するときに設定されるセッション ID があり、"Set-Cookie: "JSESSION: something; などの HTTP ヘッダーを返します。Path=/myApp". この Cookie はサーバーに送信され、クライアントが関連付けられているセッションを通知します。
問題は、小さな SOAP プロキシがセッション ID を含む Cookieも返すことです (それを介して行われる呼び出しごとに)。Flex クライアントは、メインのサーブレットと通信するときにこれらの Cookie を使用します。これらの他のセッションIDは認識されていないため、もちろん何も機能しません...
SOAP プロキシからセッション Cookie を返してほしくないので、Apache フロントエンドに SOAP プロキシからのすべての「Set-Cookie」ヘッダーを削除するように指示することで、問題が解決されることを確認しました。残念ながら (いくつかのセットアップの制限により)、これは本番環境で使用できる方法ではないため、プログラムで修正する必要があります。
サーブレットがセッション ID を設定しないようにするにはどうすればよいですか? セッション ID を送信しないように Jetty (アプリ サーバー) に指示する方法を見たことがあると思いますが、それはメインのサーブレットの機能にも影響し、移植性もありません。
プロキシ サーブレットは非常に基本的な Spring コントローラー (インターフェースを実装するだけ) であるため、基本的には必要最小限のサーブレットにすぎません。