2010-12-06 4 views
2

認証済みのユーザに関する情報(ユーザ名、ログインタイムスタンプ、リモートIPアドレスなど)を含むApplicationLoginContextというクラスを作成しました。私はJBoss Seamのセキュリティルール(Droolsベース)私のアプリケーションを通してさまざまな時に許可チェックを行います。このログインコンテキストクラスをセキュリティルールの作業メモリに永久に追加する方法はありますか?たとえば、私はログインイベントのリスナーを持っています。このリスナーの内部では、ログインコンテキストオブジェクトを作成し、それをセキュリティルールの作業メモリに追加します。そこから、私のセキュリティルールファイル内に、私は次のようなことを行うことができるだろう:Seam Droolセキュリティルール - ワーキングメモリの追加情報

rule MyRule 
... 
when 
    c: PermissionCheck() 
    loginContext: ApplicationLoginContext() 
    // do stuff with loginContext here 
then 
    ... 

私はちょうどセッションにApplicationLoginContextオブジェクトを追加しようとしたが、それは助けていないようです。私は何かしなければならないことがありますか?私は、パーミッションチェックを行うたびにパラメータとして含める必要はありません。理想的には、私はセッションごとに一度それを注入し、完了したいと思います。

思考?

答えて

0

私は質問を正しく理解していますが、毎回最初に実行される最高の顕著性を持つルールを1つ作成して、結果として毎回使用したいファクトオブジェクトを挿入するようにしてください。

rule "insert logic" 
salience 100 
when 
eval(true) 

then 
insert fact object 
関連する問題