Access Control Caching
Access Control internally uses several caches to improve the access control decision times. You can improve access control performance for special scenarios by setting the lifetime and size properties of these caches in the Cache Manager Service. In most cases, WebSphere Portal will run smoothly with the default cache settings. However, if you have a large number of resources or a large number of customized resources, you may want to adjust cache settings and conduct some tests to find the best performance trade-offs.
Cache Invalidation Behavior
In most cases, all necessary access control caches are immediately invalidated when a change to the access control configuration is done such as assigning roles to a user. If using External authorization, it is not possible to permanently synchronize the caches with changes to externally managed roles. For users that already have an authenticated portal session when the change becomes valid, they must wait for a cache timeout or logout and re-login for the changes to become active for that user. Performing a login or logout always enforces the invalidation of all caches related to the current user.There are three additional cases where the invalidation is not performed immediately and require the user to re-login or to wait for a cache timeout:
As in the external case, you can enforce a permissions refresh by performing a logout and login for the user. Alternatively, modify the following properties in the WP_PROFILE/PortalServer/config/CacheManagerService.properties file to influence the caching behavior:
- If a role assignment is granted to or revoked from a user group, the change of permissions is not propagated immediately to those members of this group that are currently logged in
- If a role block is set or removed, the resulting change of permissions is not propagated immediately to those users currently logged in
- If nested groups are enabled and group A is added or removed from group B, the permission changes are not propagated immediately to those members of group A that are currently logged in
- To switch it off completely and allow immediate propagation of all permission changes, remove the comment tag from the cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.enabled property and set the value to false. This can have a considerable performance impact.
- To speed up permission refresh by timeout, the lifetime of this cache can be decreased by setting the cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime property (in seconds) to a lower numerical value. These settings can affect performance.
- If you configure access control to use nested groups, disable cacheinstance.com.ibm.wps.ac.groupmanagement.GroupCache and modify the values of the enabled and lifetime properties for cacheinstance.com.ibm.wps.ac.groupmanagement.NestedGroupCache.
If you use group cache, disable cacheinstance.com.ibm.wps.ac.groupmanagement.NestedGroupCache and modify the values of the enabled and lifetime properties for cacheinstance.com.ibm.wps.ac.groupmanagement.GroupCache.
- These settings can affect performance.
After modifying the CacheManagerService.properties file, run the following task, from the WP_PROFILE/ConfigEngine, to make the changes effective:
- UNIX™: ./ConfigEngine.sh update-properties -DWasPassword=foo
Parent
Controlling access