You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "angela (JIRA)" <ji...@apache.org> on 2009/01/20 16:18:59 UTC

[jira] Resolved: (JCR-1941) AccessManager asks for property (jcr:created) permissions before the actual creation of the object

     [ https://issues.apache.org/jira/browse/JCR-1941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

angela resolved JCR-1941.
-------------------------

       Resolution: Fixed
    Fix Version/s: 1.6.0

changed NodeImpl to avoid retrieving a property that is not yet connected to it's parent.

thanks a lot for reporting.

> AccessManager asks for property (jcr:created) permissions before the actual creation of the object
> --------------------------------------------------------------------------------------------------
>
>                 Key: JCR-1941
>                 URL: https://issues.apache.org/jira/browse/JCR-1941
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 1.5.0
>         Environment: n/a
>            Reporter: Jacco van Weert
>            Assignee: angela
>             Fix For: 1.6.0
>
>
> When implementing a custom AccessManager for Jackrabbit v1.5+ there a bug when creating a new object.
> I perform an addNode() and my own accessmanager the isGranted() method is override'd and performs the following code;
>             ......
>             String perm = null;
>             NodeId     nodeId = mHierMgr.resolveNodePath( pPath );
>             PropertyId propId = null;
>             if (nodeId==null) {
>               propId = mHierMgr.resolvePropertyPath( pPath );
>      System.out.println("path = " + pPath.toString() );
>               // **** TODO is this ok?... it happens when a new object is created and the accessmanager ask for read access on a property.
> //              if (propId==null) return true;
>               nodeId = propId.getParentId();
>             }
> this is the System.out.println result
> path = {}        {}JeCARS        {}default        {}Groups        {}testGroup        {http://www.jcp.org/jcr/1.0}created
> and the stacktrace
> 	at org.jecars.CARS_AccessManager.isGranted(CARS_AccessManager.java:844)
> 	at org.jecars.CARS_AccessManager.isGranted(CARS_AccessManager.java:806)
> 	at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:339)
> 	at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:326)
> 	at org.apache.jackrabbit.core.ItemManager.createItemData(ItemManager.java:696)
> 	at org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:291)
> 	at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:228)
> 	at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:493)
> 	at org.apache.jackrabbit.core.NodeImpl.createChildProperty(NodeImpl.java:479)
> 	at org.apache.jackrabbit.core.NodeImpl.createChildNode(NodeImpl.java:535)
> 	at org.apache.jackrabbit.core.NodeImpl.internalAddChildNode(NodeImpl.java:795)
> 	at org.apache.jackrabbit.core.NodeImpl.internalAddNode(NodeImpl.java:729)
> 	at org.apache.jackrabbit.core.NodeImpl.internalAddNode(NodeImpl.java:677)
> 	at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:2110)
> It seems that READ permission for the jcr:created property is requested before the object is actually created

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.