アプリで Grails Spring Security Plugin を使用したいと考えています。ユーザーを表すドメイン クラスを作成します。インターネットで調べたところ、このクラスにすべてのデータを入れるのはよくないことがわかりました。このクラスは常に読み込まれているからです。
これに対する私の簡単な解決策は、データを追加のクラスにパックしてから、それをセキュリティ ユーザー クラスに関連付けることです。これは良い方法ですか?
はい、それは良いアプローチです。私はよくProfileクラスを使用して、追加のユーザープロファイルデータを添付しました。また、Userクラスに直接プロパティを追加しました。それはおそらくあなたが話している追加のデータの量に依存します。
「常に読み込まれる」のではなく、認証時に読み込まれます。ユーザー名、パスワード、およびロール名はAuthentication
、HTTP セッションに格納されるインスタンスを構築するために使用されます。これは、さまざまな URL へのアクセス権があるかどうかを確認するためにチェックされます。
ただし、@Gregg が説明しているように、データをセキュリティ関連のユーザー クラスと関連するプロファイル クラスに分割することは理にかなっています。
カスタムuserDetailsService
実装を使用して User クラスからデータをキャッシュAuthentication
し、データベースからすべてを繰り返しロードする必要がないようにすることができます。http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/11%20Custom%20UserDetailsService.htmlを参照してください。