質問

私は、私は、Apache史郎(旧JSecurity)を使用して実装、かなり高度なセキュリティメカニズムを持っています。オブジェクトの正確な可視性規則を知るために、私はいくつかのコード(すなわち、ルックアップ、ユーザーの役割、権限、グループなど)を実行する必要があります。私は、私は、現在のユーザが参照を許可されているオブジェクトを教えてクエリを実行したいと思います。

私は、私がここに使うことができるものであるように思われ、Hibernateフィルタは、あなたのオブジェクト/クエリにフィルタを適用する機能を与えることがわかりました。

しかし、私が見つけた例は、データベースを中心としているように見える(すなわち、それがtrueに設定されていたときに私はフィールド/列のisVisible、フィルタを持っていると言います)。私はHibernateのフィルタとしていくつかのコードを実行することができます方法はありますか、それはすべてのクエリに少しWHERE句を追加するだけの薄い層です。

私は実際にこの内部のGrails / GORMインフラストラクチャを使用していますので、おそらく有効である他のいくつかのソリューションがあります。 プラグインは、フィルタを休止状態に統合に存在しますが、私は実行するためにいくつかのコードでそれを使用することができない限り、 Hibernateのフィルタリング処理の一部が、それは本当にここに私を助けにはなりません。

役に立ちましたか?

解決

残念ながら、Hibernateフィルタは、あなたの問題を解決することはできません。彼らは非常に便利ですが、それはにWHERE句を少し追加し、正確に薄い層であるすべてのフェッチます。

あなたはGrailsのを使っているので、あなたはAOPは、あなたが探しているもの、あなたを与えることがあります。これを見てください: http://www.infoq.com/articles/aop-グルーヴィーする

幸運ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top