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.