1

Cookie を使用せずにセッション トークンを Flex クライアントから Struts バックエンドに送信する別の方法を見つける必要があるようです。

セッション トークンをリクエストのペイロードに入れるとしたら、どの時点で Struts の動作をカスタマイズして、既存のセッション処理をできるだけ再利用できるようにする必要がありますか? 特に、セキュリティ対策 (トークンを IP に結び付けるなど) や構成パラメーター (セッションの有効期限など) を再実装したくありません。

デフォルト スタックのかなり早い段階に CreateSession インターセプタがありますが、これをサブクラス化されたバージョンと交換する必要がありますか?

4

1 に答える 1

-1

私は Flex の経験があまりありませんが、これは面白そうだし、質問に答えられないのが好きではないので、試してみようと思いました。私が理解しているように、Flex セッション (HttpFlexSession) と HttpSession は完全に別個のエンティティです。つまり、それらの間でデータを共有できるはずです。

Steven Webster と Alistair McLeod による本「Developing Rich Clients with Macromedia Flex」から、非常に関連性の高い無料の章 ( Chapter 20: Flex Integration with J2EE ) を入手できます。

その無料の章から大量に引用します!特に注意すべき点:

状態の維持

理解における最大の飛躍は、HTTP セッション状態が不要になったことです。リッチ クライアントとサーバー間のリクエストは最終的に HTTP 経由で行われますが、HTTP は、統合する必要があるテクノロジではなく、トランスポート テクノロジに縮小されています。J2EE 開発者は、HTTP 要求および応答オブジェクトに属性とパラメーターを配置し、オブジェクトを HTTP セッションに格納することによって状態を維持するという概念に慣れています。...

... 実際、Flex は HTTP セッションへのアクセスを提供し、Flex クライアントが HTTP セッションを「サーバー上の単なる別のオブジェクト」として扱うことを可能にします。ただし、私たちの経験では、HTTP セッションの使用は、アプリケーションの状態の一部をクライアントに移行するリファクタリングの機会を特定する「悪臭」になるはずです。

この章の後半では、Flex クライアント アクセス用にセッション オブジェクトを構成する方法を示します。

J2EE セッションへのアクセスの取得

Flex は、デフォルトの web.xml ファイルでセッション サーブレットを事前設定します。これにより、アプリケーションの J2EE セッションにアクセスして変更するために使用できるサーバー側の Java オブジェクトが使用可能になります。次のリモート オブジェクト定義のいずれかを services.mxml の Service Locator に配置することで、J2EE セッションでオブジェクトを取得および設定し、セッションからオブジェクトを削除できるサービスをアプリケーションで利用できるようになります。

<mx:Remote object source="servlet" id="sessionObject" /> 
<mx:Remote object source="@ContextRoot()" id="sessionObject"/>

他の <mx:RemoteObject> タグと同様に、セッション サービスは結果イベント ハンドラーと障害イベント ハンドラーを使用して、セッションから項目をフェッチする要求を処理できます。web.xml 記述子は、セッション サーブレットの名前を servlet として定義します。したがって、次の例のいずれかを使用して、J2EE セッションを操作します。

sessionObject.session( "set","customerID", 700 );
sessionObject.session( "get", "customerID" ); 
sessionObject.session("remove", "customerID" );

これらの 3 つの例は、セッション サービスを使用して Flex クライアントから J2EE セッションの項目を取得、設定、または削除する方法を示しています。

したがって、Flex とバックエンド Java の間でセッション データを共有することはできますが、これはアンチ パターンであると示唆されているようです。

セキュリティ対策に関しては、サーブレット フィルターを使用して IP 制限を実装していた場合、Web アプリケーションのすべてのリソースにセキュリティを適用できます (それが Struts であるか Flex であるかに関係なく)。

于 2010-04-13T13:34:33.013 に答える