2017-01-04 16 views
1

私はGrailsとSpring Securityを使ってアプリケーションを開発しています。Grails - Springセキュリティ - 多くの動的役割

私の願いは、ユーザーが自分の会社名を知らせるアカウントを作成すると、会社、ロール、ユーザーの各テーブルにエントリを作成し、そのロールとユーザーを会社のエントリと関連付けます。

作成されるロールは、すべてのことを行う権限を持つ管理者のようになります。その役割を持つこのユーザーは、権限を指定する新しい役割を作成できますが、作成されるすべての役割は会社の範囲内にある必要があります。したがって、他の会社のユーザーはこれらの役割を利用できません。

私はSpring SecurityにRequestmapという機能があり、各URLに対してアプリケーションがアクセス権を持つ役割を指定できることが分かりました。

私のアプリではロールの数がユーザーの数と少なくとも同じくらい増えるため、これが最善の解決策であるかどうかはわかりません。

あなたはこの問題の解決方法についてアドバイスをしていますか?

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

答えて

0

Spring Security ACL pluginをご覧ください。

このプラグインを使用すると、特定のドメインモデルの特定のユーザーに書き込み権限や読み取り権限などのアクセス許可を追加することができます。ユーザーは、この特定のReportエンティティに書き込み(または管理者)権限を持っている場合、それがチェックされている

@Transactional 
@PreAuthorize("hasPermission(#report, write) or " + 
      "hasPermission(#report, admin)") 
Report updateReport(Report report, params) { 
    report.properties = params 
    report.save() 
    report 
} 

PreAuthorize注釈を使用することにより:

は、ドキュメントから取った例で見てください。

関連する問題