2017-06-14 65 views
0

Igor, 我想知道您是否可能對如何執行記錄級別或可能使用ActiveJDBC的字段級別安全性有所暗示。我玩過擴展Model類以覆蓋Model中的一些方法。然而,這不是一個非常「優雅」的解決方案,並開始變得相當混亂。我知道你的Model類有特定事件的鉤子,但沒有任何東西看起來伸出我的修改行爲。我能夠在不進行太多黑客攻擊以實現簡單的「字段級安全性」類型邏輯的情況下捕獲「設置」和「獲取」調用,但是重載其他方法(例如返回List的方法)變得非常困難。在ActiveJDBC中實現記錄級別或字段級別的安全性

再次,我正在尋找更多的建議,如何做到這一點,而不必改變模型或LazyList類(儘管我也可以去那條路線)。

我已經使用ActiveJDBC多少年了,它確實是一個很好的框架。感謝您的辛勤工作!

回答

1

哈哈,感謝您直接通過名字聯繫我!

我們一直這樣做,因爲以明文形式將密碼保存在數據庫中並不那麼聰明。通常情況下,我們使用的回調,具體型號:http://javalite.io/lifecycle_callbacks

你想要做什麼,是註冊一個回調:http://javalite.io/lifecycle_callbacks#registration-of-external-listeners

或模型覆蓋方法beforeSave,因爲每個型號也是其事件的事件監聽器。

+0

感謝您的快速響應。如何獲取對象列表。如果我查詢500行,用戶可能實際上只能根據某些規則「查看」其中的200行。這是我看來解決問題最多的部分。這會影響LazyList,因爲即使有500個「真正」返回的行,用戶也無法看到它們(可能)。 – Dave

+0

這是一個不同的問題?如果你不想顯示500行,爲什麼要查詢它們? – ipolevoy

+0

我可能沒有正確說出我原來的問題。讓我想一想,並試圖想出一個更好的方式來問這個:)。我試圖在數據庫的上下文之外實現行和域的安全性,在應用程序級別的安全性。所以我們假設我有一張有500行的表格,帳戶。如果我以一個用戶的身份從帳戶中選擇*,我可能只能「查看」其中的200行。我試圖看看是否可以將一些類型的安全框架注入到ActiveJDBC中。我不知道這是否讓我的問題更清楚或沒有:)。 – Dave