2012-07-23 84 views
2

我在常規Grails的技術有點新的會話對象,我有這個一個無法初始化代理 - 沒有會話,訪問的過濾器類

一個問題,我看着這個could not initialize proxy - no Session但該應用程序不會過時太長

我想訪問我的SecurityFilter上的配置子文件夾中的會話對象。我只是想檢查控制器上的每個請求,以驗證用戶是否有權執行此類操作。

class SecurityFilters { 
    def filters = { 

    userFilterList(controller:"user", action:"list") { 
     before = { 
      if (!session.user.accountType.equals("Admin")) { 
       redirect(uri: "/") 
      } 
     } 
    } 
    userFilterShow(controller:"user", action:"show") { 
     before = { 
      if (!session.user.accountType.equals("Admin")) { 
       redirect(uri: "/") 
      } 
     } 
    } 
    userFilterEdit(controller:"user", action:"edit") { 
     before = { 
      if (!session.user.accountType.equals("Admin")) { 
       redirect(uri: "/") 
      } 
     } 
    } 

    } 
} 

,但我得到這個錯誤

Message: could not initialize proxy - no Session 
Line | Method 
->> 6 | doCall in SecurityFilters$_closure1_closure2_closure5 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 186 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter 
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 636 | run  in java.lang.Thread 

之前,我這點我放在會話對象上的用戶對象執行登錄指令後,正確的,但我不知道發生了什麼事,這次會議對象變得不可用

回答

2

用戶對象的一些屬性未被檢索,因此在登錄時,當我將用戶對象放在會話中時,我還必須手動傳送我需要的屬性,以便我可以再次檢索以供以後使用

session.user = user //not enough 
session.user.accountType = user.accountType 

現在我能夠從會話中檢索對象的用戶對象,並得到我想要得到

財產
相關問題