2009-03-24 5 views
0

WebサーバーからFlex .swfファイルをリモートロードするAIR 1.5アプリケーションをコーディングしています。リモートのFlex .swfファイルを取得するためにSWFLoaderをAIRで使用するときにCookieヘッダーを設定する必要があります

私はFlex 3.2 SDKを使用しており、SWFLoader経由でサブアプリケーション機能を使用しようとしています。私はこれを行う方法についてサブアプリケーションの開発とロードを参照しています。

実際には、リモートWebサーバーからFlex .swfファイルを正常に読み込むことができ、リモートのサンドボックスにロードされます。この.swfファイルの実行形式は、AIRネイティブウィンドウで設定した透過設定を尊重します。ここで

が摩擦である:

生産状況については、当社のウェブサーバは、(これは同様に、通常の開発/ QAビルドの展開のためのケースである)ログインWebページへの不正アクセスをそらすために春のセキュリティを使用しています。ログインが成功した場合、ログインのレスポンスはCookieを設定します。このCookieヘッダーは、サイトからコンテンツを取得しようとする後続のすべてのHTTPインタラクションに存在する必要があります。

SWFLoaderを使用してFlex .swfファイルを取得する際に、クッキーヘッダーを設定する方法がわかりません。

SWFLoaderを使用して、Spring Security(JavaベースのWebサイトへのアクセスを保護するために広く使用されている方法です)から保護するWebサイトからファイルを取得するにはどうすればよいですか?スプリングソース)。

私たちのFlexベースのコードの実行は、Flash Playerサンドボックスで実行すると簡単でした.Blue Securityのものはブラウザで膨らんだ形で管理されていました。リモートサンドボックスの安全な範囲内でサブアプリケーションとしてAIRでFlexベースのアプリケーションを実行しようとすると、地獄のような経験になります。

AIRのHTMLコントロールは、Springのセキュリティで十分に機能しますが、AIRネイティブウィンドウで透明度がtrueに設定されていると、読み込まれた.swfまたは.pdfコンテンツは表示されません。私たちの特定のUIデザインは、ユーザーのデスクトップ上に浮動するMDIの子ウィンドウを実行しているので、透明性を真に設定することを絶対に要求しています。

答えて

0

この問題は、AIR HTMLコントロールとSwfLoaderを組み合わせて使用​​して、目的のリモート.swfファイルをロードすることで解決しました。

私は、AIRアプリケーションがHTMLインスタンスにロードするHTML WebページにJavaScript関数を書きました(ページ完了イベントが発生した場合、JavaScript関数をAIR Flexコードから呼び出すことは安全です)もちろん、HTMLのcompleteイベントを処理します)。

このJavaScript関数は、XmlHttpRequest()を使用して、承認のためにSpring Securityを使用するWebサイトにログインします。ログインが成功するとSet-Cookieヘッダーが処理されます。 XmlHttpRequest()の応答が完了すると、合成ページングイベントがWebページに配置されたダミーのDIVオブジェクトに送出されます。 AIR Flexコードは、この合成クリックイベントを登録して処理することができます。

クリックイベントを処理すると、AIR Flexコードは、SwfLoaderインスタンスのインスタンス化を続行することが安全であることを認識します。 SwfLoaderオブジェクトからのcompleteイベントが発生すると、SwfLoaderのオブジェクト参照がAIRアプリケーション表示リストに配置されます。

ユーザーは、リモートで読み込まれたswfファイルが実行され始め、独自のUIを表示することを確認します。これは、サブアプリケーションのリモートサンドボックスコンテキストで実行されています。サブアプリケーション機能は、Flex SDK 3でサポートされています。2 SwfLoaderコントロールを介して。

したがって、HTMLコントロールによって確立されたCookieヘッダーをAIRアプリケーションが管理しています。そのCookieヘッダーは、リモートの.swfファイルをロードするために使用されるとき、SwfLoaderコントロールのHTTP要求で生成されます。 Spring Securityフィルタはこれを認識し、認証されたユーザセッションからのリクエストを検出します。

関連する問題