如何在TSPM中禁用自定义PIP的缓存?

时间:2011-11-11 16:41:06

标签: java xacml

我正在使用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中配置了什么?

1 个答案:

答案 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。

我不建议在生产环境中使用它。