我定製MyUserDetailsServiceGrails如何在控制器上調用MyUserDetailsService?
class MyUserDetailsService implements GrailsUserDetailsService {
...
}
,我想在我的控制器
class MyController {
def springSecurityService
def check() {
String user = springSecurityService.principal.username
def MyUserdetails = MyUserDetailsService.loadUserByUsername(user)
}
}
打電話,得到錯誤
法無簽名:靜態 MyUserDetailsService.loadUserByUsername()是適用於參數 類型:(java.lang.String)values:[user]可能的解決方案: loadUserByUsername(java.lang.String中), loadUserByUsername(java.lang.String中,布爾)
我想在登錄後檢查用戶,所以我不把它放在豆。
哦,是我不好擺在SRC/Groovy中,現在我把服務文件夾,現在的工作,順便說一句如何獲得錯誤消息「從控制器拋出新的UsernameNotFoundException( '用戶未找到')」?謝謝 – 2013-02-24 10:31:55
sory我現在明白了,使用try catch從服務中拋出異常,謝謝 – 2013-02-24 10:44:38
使用Grails,推薦的方法是讓框架處理服務注入,而不是手動實例化它們。因此,不要聲明像MyUserDetailsService muds這樣的新實例,而是改寫resources.groovy文件中的默認實現,然後使用def userDetailsService來訪問該服務的方法。 – uchamp 2013-02-24 10:50:52