0

我有 2 个子类,它扩展了 Grails 项目中的 SpringSecurity User 类。例子:

class MyUserOne extends User {
   def email
   def address
}

class MyUserTwo extends User {
   def company
   def town
}

我在 BootStrap 中创建了一些 MyUserOne 和 MyUserTwo 对象并将它们保存到测试数据库中,但是......当我像 MyUserOne 用户一样登录并尝试在 .gsp 文件中访问电子邮件字段时:

<sec:loggedInUserInfo field="email"/>

它抛出一个异常,说“电子邮件”不是用户类的属性,这是真的,但是,我怎样才能访问子类的字段?我用这个代码片段“解决了”这个问题:

def user = springSecurityService.currentUser
[userInstance: user]

在任何控制器中,然后我可以访问该字段

${userInstance.email}

...但是这样做我有两次相同的用户对象(userInstancespringSecurityService我认为这不是正确的方法

有什么解决办法吗?

谢谢

4

1 回答 1

1

您是否指定了 springSecurity 应用作 User 对象的类?

grails.plugins.springsecurity.userLookup.userDomainClassName = 'com.project.MyUserOne'
于 2013-03-06T07:31:11.377 回答