2010-12-06 25 views
2

我創建了一個名爲ApplicationLoginContext的類,其中包含有關用戶的身份驗證信息(用戶名,登錄時間戳,遠程IP地址等)。我正在使用JBoss Seam安全規則(基於Drools)進行授權和在我的應用程序的各個時間進行權限檢查有沒有辦法將這個登錄上下文類永久添加到我的安全規則的工作記憶中?例如,我有一個監聽器,用於登錄事件。在這個偵聽器中,我創建了登錄上下文對象,並將其添加到我的安全規則工作內存中。從那裏,在我的安全規則的文件,我將能夠做這樣的事情:Seam Drool安全規則 - 工作記憶中的其他事實?

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

我試過只需添加ApplicationLoginContext對象的會話,但似乎並沒有幫助。還有什麼我應該做的?每次執行權限檢查時,我都不想將其作爲參數包含在內。理想情況下,我想在每個會話中注入一次並完成。

想法?

回答

0

希望我正確理解了這個問題,但似乎應該創建一條每次都會首先運行的顯着性最高的規則,因此會插入您希望每次使用的事實對象。

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

then 
insert fact object