我想在我的应用程序中使用 Grails Spring Security 插件。它创建一个代表用户的域类。我在互联网上的研究表明,将所有数据放在这个类中是不好的,因为它一直在加载。
我对此的简单解决方案是将数据打包到一个附加类中,然后将其关联到安全用户类中。这是一个好方法吗?
是的,这是一个很好的方法。我经常使用 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