You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by un...@apache.org on 2013/04/03 16:59:53 UTC
svn commit: r1464061 -
/jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
Author: unico
Date: Wed Apr 3 14:59:53 2013
New Revision: 1464061
URL: http://svn.apache.org/r1464061
Log:
JCR-3382 let getNode do a permission check when the item is in the item manager cache: applying patch by Frank van Lankvelt.
Modified:
jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
Modified: jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java?rev=1464061&r1=1464060&r2=1464061&view=diff
==============================================================================
--- jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ jackrabbit/branches/2.6/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java Wed Apr 3 14:59:53 2013
@@ -667,6 +667,11 @@ public class ItemManager implements Item
AbstractNodeData data = retrieveItem(id, parentId);
if (data == null) {
data = (AbstractNodeData) getItemData(id, null, permissionCheck);
+ } else if (permissionCheck && !canRead(data, id)) {
+ // item exists but read-perm has been revoked in the mean time.
+ // -> remove from cache
+ evictItems(id);
+ throw new AccessDeniedException("cannot read item " + data.getId());
}
if (!data.getParentId().equals(parentId)) {
// verify that parent actually appears in the shared set