3.5. 配置访问控制列表(ACL)缓存
当您向用户授予或拒绝角色时,Data Grid 存储哪些用户可以在内部访问您的缓存的详细信息。此 ACL 缓存通过避免 Data Grid 的需求来计算每个请求执行读写操作的适当权限,从而提高了安全授权的性能。
每当您为用户授予或拒绝角色时,Data Grid 会清除 ACL 缓存,以确保它正确应用用户权限。这意味着,每次授予或拒绝角色时,数据网格都必须为所有用户重新计算缓存权限。为了获得最佳性能,您不应该在生产环境中频繁或重复授予和拒绝角色。
流程
- 打开 Data Grid 配置以进行编辑。
使用
cache-size属性指定 ACL 缓存的最大条目数。ACL 缓存中的条目具有缓存的卡性,即
* 用户。您应该将最大条目数设置为可保存所有缓存和用户信息的值。例如,默认大小为1000,适用于最多 100 个缓存和 10 个用户的部署。使用
cache-timeout属性设置超时值(以毫秒为单位)。如果 Data Grid 无法访问该条目的超时时间内 ACL 缓存中的条目。当用户随后尝试缓存操作时,Data Grid 会重新计算其缓存权限,并将条目添加到 ACL 缓存中。
重要为
cache-size或cache-timeout属性指定0代表禁用 ACL 缓存。只有在禁用授权时,才应禁用 ACL 缓存。- 保存对配置的更改。
ACL 缓存配置
XML
<infinispan>
<cache-container name="acl-cache-configuration">
<security cache-size="1000"
cache-timeout="300000">
<authorization/>
</security>
</cache-container>
</infinispan>
JSON
{
"infinispan" : {
"cache-container" : {
"name" : "acl-cache-configuration",
"security" : {
"cache-size" : "1000",
"cache-timeout" : "300000",
"authorization" : {}
}
}
}
}
YAML
infinispan:
cacheContainer:
name: "acl-cache-configuration"
security:
cache-size: "1000"
cache-timeout: "300000"
authorization: ~
3.5.1. 刷新 ACL 缓存 复制链接链接已复制到粘贴板!
可以使用 GlobalSecurityManager MBean (可通过 JMX 访问)来清除 ACL 缓存。