2012-04-05 10 views
2

私は1つのJava SwingアプリケーションをWebに移植する準備をしています。アプリケーションはマルチビジネスアプリケーションなので、各ビジネスには少なくとも1人の管理者がおり、この管理者はビジネスのユーザーに(モジュールごとに)特権を与えることができます。GrailsまたはPlayフレームワークの動的ACL?

つまり、モジュール、顧客、請求書、パーミッションの読み書きがあります。ビジネスAには3人のユーザーがいます。John、Mike & Mary。

Johnはマイクに&の書き込みアクセス権を顧客および請求書に付与しますが、アカウントへのアクセスは許可しません。また、Marysはアカウントへの読み書きアクセス権、請求書へのアクセス権および顧客へのアクセス権を付与します。

私の質問は、Play FrameworkやGrailsでこれを行うモジュール/プラグインはありますか?そうでない場合は、どうすればいいですか? Grailsのために

答えて

2

、春のセキュリティの両方Spring SecurityShiro

用のプラグインを使用すると、実行時にロールを作成し、実行時にロールにユーザーを追加することができますがあります。

spring-security-uiというプラグインがありますが、これを行うためのGUIが用意されていますが、自分のユースケースに合っているとは思えません。 Spring-security-uiは、スーパー管理者のGUIよりも優れています。しかし、アクセスを許可する独自のユーザーインターフェイスを作成するのは簡単です。

3つの役割を必要とするかどうかを決定する必要があります。 ROLE_ADMIN、ROLE_READ、ROLE_WRITEを追加し、ユーザーが自社のビジネスにアクセスしようとしていることを確認するための追加のチェック(フィルタなど)を追加します。それとも、動的に動的に役割を追加するには3つの役割各事業について、すなわちROLE_BUSINESS1_ADMIN、ROLE_BUSINESS2_ADMINなど

を追加する場合:

String roleName = ... 
def role = Role.findByAuthority(roleName) ?: new Role(authority: roleName).save() 

をユーザーに役割を追加するには:

PersonRole.create user, role, true 

(上記の例では、ドメインオブジェクトはPersonおよびRoleと呼ばれますが、他の名前を使用できます)

URLにアクセスルールを動的に追加するには、Requestmap Instances Stored in the Database、またはプログラムでアクセスを確認することができますSpringSecurityUtils.ifAnyGranted(roles)

私は城との経験はありませんが、私は同じことをすることができると思います。

関連する問題