1

StrutsとHibernateを使用してWebアプリを作成しています。最近、 GWTVisualizationAPIを発見しました。これはすべて非常に興味深く見え、私のアプリに必要なAJAX機能を提供します。私はかなり混乱している初心者です....

データアクセスレベルチェックをどこに置くか?

Webアプリでは、ユーザーはデータへのさまざまなレベルのアクセス権を持っています。たとえば、さまざまなデータに対する読み取り/書き込み権限のさまざまな組み合わせ。データがアクセスまたは変更されたときにアプリがチェックする、ある種のユーザープロファイルがあります。結果に応じて、ユーザーにデータアクセスが許可されます。表示アクセスが拒否されるか、データは表示できますが変更できません。この特定のチェックをどこに置くかわかりません。DAOでコード化することができたと思います。データ操作が処理されるたびに、クエリされたデータをプロファイルと照合して手動でチェックします。または、ビジネスロジック/表示レイヤーに配置します。ユーザーがデータアクセス権限を持っていない場合は、ボタンをユーザーから離します。または両方?または、休止状態の構成ファイルはありますかマップされたすべてのテーブルのデータアクセス権限をどこかで指定できますか?

情報を渡すためのベストプラクティス

モデル/ビュー/コントローラー間で通信し、RPCでGWTを呼び出し、データを視覚化コードに渡してグラフなどをレンダリングする必要があります。Visualization APIを使用してgwt-rpc呼び出しを行い、グラフを描画するには、JavaオブジェクトをJSONオブジェクトに変換する何らかのトランスレーターが確実に必要だと思います。私は正しいですか?また、StrutsとHiberanteで情報を渡すという点では、データ転送オブジェクトを作成するのは良い考えですか?それなら、をいつも回しますか?または(今日これに出くわしました。正しく理解したかどうかさえわかりません)オブジェクトをJNDIにバインドし、プログラムの他の部分からそれらにアクセスしますか?

任意の入力/説明をいただければ幸いです。どうもありがとうございます!

4

3 に答える 3

2

アクセス レベル チェック:

アクセスレベルのチェックを独自のクラスに分離し、DAO を呼び出す前に、「コントローラー」に最初にアクセスマネージャーを呼び出させます。つまり、各アクションは、データを取得/挿入するための DAO 呼び出しを実行する前にチェックを実行します。

ただし、gwt を使用している場合は、struts アクションを使用する代わりに RPC 呼び出しを行う方が良い方法です。rpc 呼び出しは、前述の「コントローラー」になり、前述のマネージャーを使用してアクセス チェックを実行できます。つまり、アクションを排除します。

アクセス マネージャーに関しては、すべての詳細なアクセス権限を列挙し、これらの権限を各ユーザー/プロファイルなどに関連付けることができるセットに構成することをお勧めします。

gwt の周りに情報を渡すのは、休止状態で作業するのが面倒です。 Gileadを試してみることができますが、あまり成功していません。json変換に関するあなたのアイデアは、gwt imhoで正しい方法です。gwt 1.5 は、javascript オブジェクト オーバーレイと呼ばれるものをサポートします。これにより、json を返し、それを gwt Java オブジェクトに直接「スーパーインポーズ」できます。コードはほとんど必要ありません。詳細については、この投稿をご覧ください。

もう 1 つの方法は、独自の DTO 生成機能を展開することです (これは Gilead が意図していることですが、自動生成を行うとは思いませんか?よくわかりません)。ビルドの一部として実装します。大規模なプロジェクトではない場合、その価値がない少し余分な作業です。

于 2009-02-07T02:23:12.063 に答える
0

サーバー側でのデータ アクセス レベル チェックが最も安全な方法です。それでも、GWT はパックされた JS を生成します。クライアント側でそれを行うことができます。ただし、その場合、ユーザープロファイルは毎回サーバー側で/からチェック/取得する必要があります。

情報を渡す: ベクトルで区切られた文字列を使用しています。そして、それはうまくいっています...

于 2009-10-30T19:52:59.703 に答える