這可能是一個新手問題。彈簧:存儲和使用Sitemesh裝飾器中的對象
我有一個表用戶,其中包含有關登錄,通過和權限的信息。根據權限或角色,可以在以下任一項中找到有關每個用戶的詳細信息:教師,學生,家長。當用戶登錄時,存儲在USER表中的信息可以很容易地從安全上下文中獲取。
我想在登錄後在標題中始終顯示名字和姓氏 - 這些可以從其他表中獲取。
我的問題是:我如何處理會話中的這些對象的所有時間?或者可以存儲用戶(它在春季存儲),然後在每次需要詳細信息時獲取特定表格?
我使用spring security 3,hibernate,jsp,sitemash。
更多的澄清:
我知道如何處理登錄的用戶,並限制某些內容。登錄詳細信息(id,pass,role)存儲在USER表中,這沒關係 - 我可以取它並顯示我想要的任何信息。問題在於有關特定用戶的詳細信息(地址,姓名,電子郵件等)存儲在另一個表(學生,教師,家長 - 取決於USER表中的角色)中。這就是我想要在每一頁上都知道的 - 例如顯示他/她的名字。
您是否已經自行加載用戶數據?如果是這樣,爲什麼不一次性加載所有你需要的信息(根據權限做一個單獨的查詢),然後把它作爲一個自定義用戶對象加以整理,作爲安全上下文主體對象存儲? –
是的,我正在從用戶自己加載數據。你的意思是我應該擴展用戶類,添加幾個字段,並像現在一樣使用它? 目前,我有這樣的: 用戶=新用戶(用戶名,dbUser.getHaslo(),真的,真的,真的, \t \t \t \t \t真實的,補助金); 所以basiclly只有這個構造函數會變成我要實現的那個,它會工作嗎?無論如何,我會檢查它tmrw並標記答案:) –
好的,我做了,但使用身份驗證auth = SecurityContextHolder.getContext()。getAuthentication()...我只能獲取登錄的用戶名和權限。我擴展了org.springframework.security.core.userdetails.User並添加了兩個字段 - 名稱和姓氏。但仍然不知道如何將其傳遞給模型。像上面這樣做只允許我使用getName()(例如登錄)。仍然無法訪問添加的字段 –