com.atlassian.confluence.security
Class CachingSpacePermissionManager
java.lang.Object
com.atlassian.confluence.security.AbstractSpacePermissionManager
com.atlassian.confluence.security.DefaultSpacePermissionManager
com.atlassian.confluence.security.CachingSpacePermissionManager
- All Implemented Interfaces:
- SpacePermissionManager
- public class CachingSpacePermissionManager
- extends DefaultSpacePermissionManager
Implementation of SpacePermissionManager that implements caching before a SpacePermission is requested,
saved or removed from the SpacePermissionDao. This is designed to increase performance and reduce the
amount of hits on the database.
Methods inherited from class com.atlassian.confluence.security.DefaultSpacePermissionManager |
createInitialSpacePermissions, getAllPermissionsForGroup, getGlobalPermissions, getGlobalPermissions, getGroupsForPermissionType, getGroupsWithPermissions, getUsersForPermissionType, getUsersWithPermissions, groupHasPermission, hasPermission, hasPermission, removeAllPermissions, removeAllPermissionsForGroup, removeAllUserPermissions, removePermission, savePermission |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CACHE_KEY
public static final String CACHE_KEY
CachingSpacePermissionManager
public CachingSpacePermissionManager()
hasPermissionInDao
protected boolean hasPermissionInDao(SpacePermission permission)
- Looks up permission in the cache instance. If it is not found,
then it is looked up by the DAO and the result (true or false)
is also recorded.
If permission belongs to a space, it is looked up in the Space's own
permissions list.
In addition, when lookAheadEnabled is true, #doLookAheadCache will
be called and the results cached, provided permission does not belong
to a space.
- Overrides:
hasPermissionInDao
in class DefaultSpacePermissionManager
- Parameters:
permission
- the SpacePermission to look up
- Returns:
- true if the permission exists, false otherwise
savePermissionToDao
protected void savePermissionToDao(SpacePermission permission)
- Saves permission to the DAO. In addition, this method removes
the permission from the cache, to prevent corruption of the cache
when there is a transaction rollback (since the cache isn't transactional)
- Overrides:
savePermissionToDao
in class DefaultSpacePermissionManager
- Parameters:
permission
- the SpacePermission to save
removePermissionFromDao
protected void removePermissionFromDao(SpacePermission realPermission)
- Removes realPermission from the DAO. In addition, the permission is
also removed from the cache.
- Overrides:
removePermissionFromDao
in class DefaultSpacePermissionManager
- Parameters:
realPermission
- the SpacePermission to remove
setCacheManager
public void setCacheManager(CacheManager cacheManager)
flushCaches
public void flushCaches()
- Specified by:
flushCaches
in interface SpacePermissionManager
- Overrides:
flushCaches
in class DefaultSpacePermissionManager
isLookAheadEnabled
public boolean isLookAheadEnabled()
setLookAheadEnabled
public void setLookAheadEnabled(boolean lookAheadEnabled)