問題タブ [grails-spring-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - 階層的な権限クラスを Person クラスに格納するにはどうすればよいですか?
私の質問は: (どのように?) Spring Security Plugin を使用して Grails のユーザー クラスにユーザーの「権限」を保存できますか?
次の SQL 構造を指定しました。
ユーザー テーブル:
ランク表:
典型的な "User, Authority, UserAuthority many to many" スキーマの代わりに、その構造で動作するようにドメイン クラスを構成できますか?
ランク (id) は階層的です。これは、ランク 4 のユーザーがランク 3 のユーザーからすべての「権限」を取得したことを意味します。
編集: ユーザー ドメインの getAuthorities メソッドを次のように単純に置き換えました。
grails - ロール ROLE_ADMIN を持つユーザーの Grails Security 3.1.2 ログインは、権限として ROLE_NO_ROLES を示します
Grails 3.2.9 を Sec プラグイン 3.1.2 でテストしています。
ブートストラップでロール ROLE_ADMIN を持つユーザーを作成し、テスト コントローラーの「メモ」用に InterceptUrlMap に権限を追加しました。そのユーザーでのログインに成功した後、管理者に ROLE_NO_ROLES があり、ノート コントローラーへのアクセスが拒否されていることがログに表示されます。
ユーザー、ロール、およびユーザー ロールの関連付けはデータベース上にあります。
アプリケーション.groovy
/note/index に移動しようとすると、ログイン後にログが記録されます
何が起こっているかについてのアイデアはありますか?
Sec プラグインのドキュメントでポインタを見つけようとしましたが、ROLE_NO_ROLES が 1 回だけ言及されており、ユーザーにロールがない場合に割り当てられます。この場合はそうではありません。