0

我正在使用弹簧安全。我有一个用户对象,它不包含用户登录时需要在多个页面上显示的变量。域如下所示:

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 和 User 是独立的类。我需要在会话中存储 profile.displayMe 以便在某些 gsps 中使用。我没有一个大的用户域,因为域模型有几种配置文件类型,并且将它们全部组合成一个巨大的用户域很麻烦。组合域以获得 User.displayMe 不是一种选择。

我会在 springsecurity 中的哪个位置存储 profile.displayMe 在会话中?我对springsecurity还不是很熟悉,所以我需要一些具体的帮助,比如'在LoginController.groovy(springsecurity的默认登录控制器)的auth方法中。

4

1 回答 1

0

最好的方法是使用自定义 UserDetailsS​​ervice。如果您使用的是 2.0 或http://grails-plugins.github,请参阅文档http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/userDetailsS ​​ervice.html。 io/grails-spring-security-core/docs/manual.1273/guide/11%20Custom%20UserDetailsS​​ervice.html如果您使用的是 1.x

于 2013-10-16T00:34:43.747 回答