+

Search Tips   |   Advanced Search

Access Control Caching

Access Control internally uses several caches to improve the access control decision times. We 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 we have a large number of resources or a large number of customized resources, we 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 weing 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:

  • 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 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 currently logged in

As in the external case, we can enforce a permissions refresh by performing a logout and login for the user. Alternatively, modify the following properties in the file...

    wp_profile_root/PortalServer/config/CacheManagerService.properties

  • To switch it off completely and allow immediate propagation of all permission changes, remove the comment tag from the property...

      cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.enabled

    ...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 property...

      cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime

    ...in seconds, to a smaller numerical value. These settings can affect performance.

  • If we 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 we 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.

    • All user and user group specific cache data can be explicitly invalidated upon user login authentication through the following two configuration settings through the WAS console:

      These two settings will cause high Dynamic Replication Service load in the application server in a cluster environment, and therefore can affect performance.

      • Navigate to...

          Resource environment providers | WP PACGroupManagementService | Custom properties

        ... Either add or update...

          accessControlGroupManagement.invalidateGroupCacheOnLoginLogout

        ...with a value of true.

      • Navigate to...

          Resource environment providers | WP AccessControlDataManagementService | Custom properties

        Either add or update...

          accessControlDataManagement.invalidateResourceCacheOnLoginLogout

        ...with a value of true.

    After modifying the CacheManagerService.properties file, make the changes effective:

      cd WP_PROFILE/ConfigEngine,
      ./ConfigEngine.sh update-properties -DWasPassword=foo


    Parent Control access