Hi,
I'm using Jackrabbit 2.6.0 with JCR 2.0. Trying to create new users and
assign some privileges to them.When I try to get AccessControlPolicy from
AccessControlManager(from root node), it always gives null.Entry in
repository.xml,*                                                                
                            **Relevant java code to set
privileges(tried all possible combinations) *           Session session =
repository.login(new SimpleCredentials(userName, password.toCharArray()));      
        
UserManager um = ((JackrabbitSession) session).getUserManager();                
org.apache.jackrabbit.api.security.user.User user =
um.createUser(loggedInUserName, loggedInUserPassword);          
AccessControlManager acm = session.getAccessControlManager();                   
                        
String rootNode = "/1";                                         
AccessControlPolicyIterator
applicablePolicyIterator = acm.getApplicablePolicies(rootNode);                 
                        
AccessControlPolicy[] acpEffective =  acm.getEffectivePolicies(rootNode);       
        
Iterator effectivePolicyIterator = Arrays.asList(acpEffective).iterator();      
                                
AccessControlPolicy[] acpWhole = acm.getPolicies(rootNode);                     
Iterator
policyIterator = Arrays.asList(acpWhole).iterator();                            
        
if(applicablePolicyIterator != null && applicablePolicyIterator.getSize() >
0) {                            while (applicablePolicyIterator.hasNext()) {    
                           
AccessControlPolicy acp =
applicablePolicyIterator.nextAccessControlPolicy();                             
   
javax.jcr.security.Privilege[] privileges = new
javax.jcr.security.Privilege[]{acm.privilegeFromName(javax.jcr.security.Privilege.JCR_WRITE)};
                             
((AccessControlList)acp).addAccessControlEntry(new
PrincipalImpl(user.getID()), privileges);                                   
acm.setPolicy(rootNode,
acp);                           }                       } else 
if(effectivePolicyIterator != null &&
effectivePolicyIterator.hasNext()) {                    
while(effectivePolicyIterator.hasNext()) {                                      
AccessControlPolicy acp =
effectivePolicyIterator.next();                                     
javax.jcr.security.Privilege[]
privileges = new
javax.jcr.security.Privilege[]{acm.privilegeFromName(javax.jcr.security.Privilege.JCR_WRITE)};
                             
((AccessControlList)acp).addAccessControlEntry(new
PrincipalImpl(user.getID()), privileges);                                   
acm.setPolicy(rootNode,
acp);                           }                       } else 
if(policyIterator != null && policyIterator.hasNext())
{                               while(policyIterator.hasNext()) {               
                        AccessControlPolicy acp =
policyIterator.next();                              
javax.jcr.security.Privilege[] privileges =
new
javax.jcr.security.Privilege[]{acm.privilegeFromName(javax.jcr.security.Privilege.JCR_WRITE)};
                             
((AccessControlList)acp).addAccessControlEntry(new
PrincipalImpl(user.getID()), privileges);                                   
acm.setPolicy(rootNode,
acp);                           }                       }but to no avail. 
Kindly hint me on how to access the
privileges.
Thanks



--
View this message in context: 
http://jackrabbit.510166.n4.nabble.com/Unable-to-set-policy-tp4661051.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Reply via email to