2012-10-09 17 views
0

我想在我的應用程序中使用Grails Spring Security Plugin。它創建一個代表用戶的域類。我在互聯網上的研究表明,把所有的數據都放在這個類中是不好的,因爲它總是被加載。Grails安全性插件:存儲額外用戶數據的位置?

我簡單的解決方案,這將是包裝在額外類的數據,然後在安全性用戶類asocciate它。這是一個好方法嗎?

+0

你能澄清你的關於「加載所有的時間」的擔憂?你關心內存佔用情況還是數據訪問時間? –

+0

我擔心的是安全性插件會將用戶對象保留在內存中,幷包含安全性所不需要的所有數據。所以我想分開這些,並將其他配置文件數據放在不同的類中。問題在於解決問題與否。 – Chris

回答

1

這不是「加載所有的時間」,這是當你驗證加載。用戶名,密碼和角色名稱用於構建存儲在HTTP會話中的Authentication實例。這將被檢查以查看您是否擁有各種URL的訪問權限。

但是,如@Gregg所描述的,將數據劃分到安全相關的用戶類和關聯的配置文件類中可能很有意義。

您可以使用自定義的userDetailsService實現來緩存來自Authentication中用戶類的數據,以避免必須從數據庫重複加載整個事件;見http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/11%20Custom%20UserDetailsService.html

1

是的,這是一個很好的方法。我經常使用Profile類來附加其他用戶配置文件數據。我還直接向User類添加了其他屬性。這可能取決於您所談論的額外數據量。