我正在使用IBM的Tivoli安全策略管理器和自定义PIP(实现com.ibm.tscc.rtss.authz.api.IExternalFinder
)。我可以从TIP控制台看到我的PIP,我可以配置它来为我的策略中的参数提供值。但是,当这些策略是作为授权请求的结果进行评估时,我的PIP只被要求每隔几分钟左右提供一个值。旧值用于平均时间。
为了证明这一点,我的PIP有一个由int counter
组成的内部状态,在调用get*Attributes
方法时会增加一个。我的PIP生成的单String
类型(环境)属性表示"even"
或"odd"
,具体取决于counter % 2
的值。我期待用户被授予访问每次其他尝试的权限,但如果请求在彼此之后过早发送,则不会发生这种情况。
有没有办法强制TSPM不缓存我的PIP的结果?这在TSPM或WebSphere中配置了什么?
答案 0 :(得分: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。
我不建议在生产环境中使用它。