我正在使用弹簧安全。我有一个用户对象,它不包含在用户登录时需要在多个页面上显示的变量。域名如下所示:
class User {
String username
String password
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
Integer securityQuestion
String securityAnswer
}
class Profile {
User user
String displayMe //this is actually a calculated transient string based on some other info
}
个人资料和用户是单独的类。我需要在会话中存储profile.displayMe以便在某些gsps中使用。我没有一个大的用户域,因为域模型有几种配置文件类型,并将它们全部组合成一个巨大的用户域是混乱的。组合域以使User.displayMe不是一个选项。
在springsecurity中,我会在会话中存储profile.displayMe吗?我对springsecurity并不熟悉,所以我需要一些特定的帮助,例如'在LoginController.groovy的auth方法中(springsecurity的默认登录控制器)。
答案 0 :(得分:0)
执行此操作的最佳方法是使用自定义UserDetailsService。如果您使用的是2.0或http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/userDetailsService.html,请参阅文档http://grails-plugins.github.io/grails-spring-security-core/docs/manual.1273/guide/11%20Custom%20UserDetailsService.html如果您使用的是1.x