2011-11-11 66 views
2

我正在使用具有自定義PIP的IBM Tivoli安全策略管理器(實施com.ibm.tscc.rtss.authz.api.IExternalFinder)。我可以從TIP控制檯看到我的PIP,並且可以將其配置爲爲我的策略中的參數提供值。但是,當這些策略因授權請求而被評估時,我的PIP只會被要求每隔幾分鐘提供一個值。同時使用舊值。如何在TSPM中禁用自定義PIP的緩存?

爲了說明這一點,我的PIP有一個內部狀態,它由int counter組成,它在調用get*Attributes方法時增加了一個。由我的PIP生成的單個String類型(環境)屬性指示"even""odd",具體取決於counter % 2的值。我期待用戶被授予訪問所有其他嘗試的權限,但如果請求發送太快,則不會發生這種情況。

有沒有辦法強制TSPM不緩存我的PIP結果?在TSPM或WebSphere中配置的位置在哪裏?

+0

超時時間似乎爲120秒。 – martijno

+0

順便說一句,第一次授權嘗試後系統日誌顯示CWRGS1139E,抱怨系統屬性指定的主目錄沒有找到。 'commonauthz.home'的各種值使這個錯誤消失(但不解決我的問題)。 – martijno

+0

在'/ opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/tspm/xacml/config.xml'中將'DisableCaching'設置爲'true'(這是'false')似乎也沒有幫助。 – martijno

回答

2

當前版本的TSPM ...僅請求/響應緩存中沒有針對PIP的緩存。這聽起來像是發生了什麼 - 默認的超時時間確實是120秒。請將所有配置更改恢復爲默認值:請勿爲commonauthz.home設置任何內容 - 這是一條紅鯡魚;並將您的config.xml更改還原爲默認值。

禁用請求/響應緩存的正確位置在文件<PROFILE_HOME>/config/<CELL>/rtss/security-services.xmi中。添加或編輯本段:

<components name="Authz"> 
     <subComponents name="AuthzServices"> 
     <items name="CommonAuthz"> 
      <properties> 
      <values name="com.ibm.sec.authz.xacml.runtime.DisableCaching" value="true" type="java.lang.String"/> 
      </properties> 
     </items> 
     </subComponents> 

然後重新啓動RTSS。

我不會在生產環境中推薦這個。

+0

謝謝Craig!那就是訣竅。 – martijno