2012-05-07 13 views
1

私は、Spring(およびスプリングセキュリティー)、struts2およびhibernateを使用して、JavaでWebアプリケーションを構築しています。マルチクライアントのJavaアーキテクチャー

すべての「ユーザー」は「クライアント」に属します。そして、私はそれを設計する必要があるので、ユーザーがログインしたときに彼は自分の "クライアント"のリソースにしかアクセスできません。

元はweb-appは "クライアント"なしで構築されました。 Webアプリケーションの特定のモジュールへのROLEベースのアクセス権を持つロールを持つユーザーのみ。

これらのロールは継続します。違いは、ユーザーはクライアントリソースのみに制限されることです。クライアント内では、ROLEベースのアクセスが可能で、実行できないことが記述されています。

私はかなり標準的なweb-appを持っています。マネージャーとDao'sがあります。 これに最も適したアーキテクチャーアプローチは何ですか?

ありがとうございました!

+2

あなたがGoogleにしたい場合は、あなたが探している言葉が 'multi-tenancy'です。 – mihi

+0

それに感謝します。私はそのキーワードを探していた – user829237

答えて

0

私は似たような働きをしています。たとえば、デフォルトのUserDetailsに「clientId」という特別な属性を追加することができます(まだカスタマイズされていません)。ユーザーがログされると、アプリケーションはユーザーが所属するクライアントを認識します。

ユーザがアクションを実行する場合、アプリケーションはuserDetailsから「clientId」を取得し、このIDに従ってアクションを実行する必要があります。 Problay、あなたのDAOメソッド(とテーブル)の多くはパラメータとしてclientIdを持つ必要があります。

このソリューションは役割には影響しません。

+0

これは、おそらく私は何をする必要があります。私はある種の標準化されたフレームワークや "プラグイン"を使用して、たくさんのコードを書き直さなければならないことを望んでいました。 – user829237

+0

私は簡単な方法はないと思います。アプリケーションをマルチテナンシーにするには、データベースモデル、アプリケーションなどを変更する必要があります。 – jddsantaella

関連する問題