2017-06-14 5 views
0

Igor、 ActiveJDBCを使用してレコードレベルまたはフィールドレベルのセキュリティを実装する方法についてのヒントがあるかどうかは疑問でした。 Modelクラスを拡張してModelからメソッドのいくつかをオーバーライドして遊んだ。しかし、それはあまり「エレガントな」解決策ではなく、むしろ乱雑になり始めました。あなたのModelクラスには特定のイベントのフックがあることは知っていますが、振る舞いを変更するために私の目に触れているようなものは何もありません。私は単純な "フィールドレベルのセキュリティ"型のロジックを実装するためにあまりにも多くのハッキングをせずに "set"と "get"呼び出しをキャッチすることができましたが、Listを返すメソッドなどの他のメソッドをオーバーロードすることは非常に困難になりました。ActiveJDBCでレコードレベルまたはフィールドレベルのセキュリティを実装する

繰り返しますが、私は実際には(私もそのルートを行くことができるが)モデルやLazyListクラスを変更することなくこれを行う方法の提案をより探しています。

私は今、数年前からActiveJDBCを使用してきた、本当に上構築するための大きな枠組みとなっています。すべてのあなたの努力をありがとう!

答えて

1

母、名前で直接私に対処するためのありがとう!

我々はクリアテキストでデータベースにパスワードを保存するように、このすべての時間を行うには、そのスマートではありません。通常、我々は特定のモデルのためのコールバックを使用します。各モデルはまた、そのイベントのイベントリスナーであることから、http://javalite.io/lifecycle_callbacks#registration-of-external-listeners

またはモデルにメソッドbeforeSaveをオーバーライドします:http://javalite.io/lifecycle_callbacks

は何をしたい、コールバックを登録しています。

+0

迅速な対応に感謝します。オブジェクトのリストを取得するのはどうですか?私が500行を照会すると、ユーザーは実際には何らかのルールに基づいて200行だけを見ることができます。それは、私が最も問題を解決しているように見える部分です。これはLazyListに影響します。なぜなら、「本当に」返された500行があっても、ユーザーはそれらのすべてを(潜在的に)見ることができないからです。 – Dave

+0

これは別の質問ですか? 500行を表示したくない場合は、なぜそれらをクエリしますか? – ipolevoy

+0

私はおそらく私の元の質問を正しく表現していないでしょう。私はこれを熟考し、これを尋ねる良い方法を思いついてみましょう:)。私は行とフィールドレベルのセキュリティをデータベースのコンテキスト外で実装しようとしています。アプリケーションレベルでのセキュリティ。だから私は500の行を持っているテーブル、口座を持っているとしましょう。 1人のユーザーとしてアカウントから*を選択すると、その行のうちの200個だけを「表示」することができます。 ActiveJDBCにある種のセキュリティフレームワークを注入できるかどうか確認しようとしています。私はそれが私の質問をより明確にするかどうかはわかりません:)。 – Dave

関連する問題