0

GrailsプロジェクトのSpringSecurityUserクラスを拡張する2つの子クラスがあります。例:

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"/>

「email」はクラスUserのプロパティではないという例外がスローされ、それは本当ですが、子クラスのフィールドにアクセスするにはどうすればよいですか?私はこのコードフラグメントでこれを「解決」しました:

def user = springSecurityService.currentUser
[userInstance: user]

任意のコントローラーで、フィールドにアクセスできます

${userInstance.email}

...しかし、これを行うと、同じユーザーオブジェクトが2回あります(userInstancespringSecurityServiceこれは正しい方法ではないと思います) 。

解決策はありますか?

ありがとう

4

1 に答える 1

1

springSecurityがUserオブジェクトとして使用するクラスを指定しましたか?

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