2017-06-14 64 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