public class PentahoCompiledPermissionsImpl
extends org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
implements org.apache.jackrabbit.core.security.authorization.AccessControlListener
CompiledPermissionsImpl
modified with more lenient locking on cache to prevent deadlocks
between clearCache()
and canRead(org.apache.jackrabbit.spi.Path, org.apache.jackrabbit.core.id.ItemId)
as detailed in BISERVER-8382CompiledPermissionsImpl
except for the extra lock and the
synchronized
changes within canRead(Path, ItemId)
CompiledPermissionsImpl
Modifier and Type | Method and Description |
---|---|
void |
acModified(org.apache.jackrabbit.core.security.authorization.AccessControlModifications modifications) |
protected org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result |
buildRepositoryResult() |
protected org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result |
buildResult(org.apache.jackrabbit.spi.Path absPath) |
boolean |
canRead(org.apache.jackrabbit.spi.Path path,
org.apache.jackrabbit.core.id.ItemId itemId)
Changed so that access to entryCollector is done outside of a
monitor synchronized block.Should be functionally equivalent to CompiledPermissions#canRead(Path, ItemId) |
protected void |
clearCache() |
void |
close() |
protected org.apache.jackrabbit.core.security.authorization.PrivilegeManagerImpl |
getPrivilegeManagerImpl() |
org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result |
getResult(org.apache.jackrabbit.spi.Path absPath)
We override this method as the superclass implementation caches permissions in an LRU cache.
|
protected org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result buildResult(org.apache.jackrabbit.spi.Path absPath) throws javax.jcr.RepositoryException
buildResult
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
javax.jcr.RepositoryException
AbstractCompiledPermissions.buildResult(org.apache.jackrabbit.spi.Path)
protected org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result buildRepositoryResult() throws javax.jcr.RepositoryException
buildRepositoryResult
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
javax.jcr.RepositoryException
protected org.apache.jackrabbit.core.security.authorization.PrivilegeManagerImpl getPrivilegeManagerImpl() throws javax.jcr.RepositoryException
getPrivilegeManagerImpl
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
javax.jcr.RepositoryException
AbstractCompiledPermissions.getPrivilegeManagerImpl()
protected void clearCache()
clearCache
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
AbstractCompiledPermissions.clearCache()
public void close()
close
in interface org.apache.jackrabbit.core.security.authorization.CompiledPermissions
close
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
CompiledPermissions.close()
public boolean canRead(org.apache.jackrabbit.spi.Path path, org.apache.jackrabbit.core.id.ItemId itemId) throws javax.jcr.RepositoryException
monitor
synchronized block.CompiledPermissions#canRead(Path, ItemId)
canRead
in interface org.apache.jackrabbit.core.security.authorization.CompiledPermissions
javax.jcr.RepositoryException
CompiledPermissions.canRead(Path, ItemId)
public void acModified(org.apache.jackrabbit.core.security.authorization.AccessControlModifications modifications)
acModified
in interface org.apache.jackrabbit.core.security.authorization.AccessControlListener
acModified(org.apache.jackrabbit
.core.security.authorization.AccessControlModifications)
public org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.Result getResult(org.apache.jackrabbit.spi.Path absPath) throws javax.jcr.RepositoryException
AbstractCompiledPermissions.getResult(org.apache.jackrabbit.spi.Path)
getResult
in class org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions
absPath
- javax.jcr.RepositoryException
Copyright © 2017 Hitachi Vantara. All rights reserved.