Package javax.jcr.security

Examples of javax.jcr.security.Privilege


      }

      //add a fresh ACE with the granted privileges
      List<Privilege> grantedPrivilegeList = new ArrayList<Privilege>();
      for (String name : newGrantedPrivilegeNames) {
        Privilege privilege = accessControlManager.privilegeFromName(name);
        grantedPrivilegeList.add(privilege);
      }
      if (grantedPrivilegeList.size() > 0) {
        acl.addAccessControlEntry(principal, grantedPrivilegeList.toArray(new Privilege[grantedPrivilegeList.size()]));
      }

       //add a fresh ACE with the denied privileges
       List<Privilege> deniedPrivilegeList = new ArrayList<Privilege>();
       for (String name : newDeniedPrivilegeNames) {
         Privilege privilege = accessControlManager.privilegeFromName(name);
         deniedPrivilegeList.add(privilege);
       }       
       if (deniedPrivilegeList.size() > 0) {
         addEntry(acl, principal, deniedPrivilegeList.toArray(new Privilege[deniedPrivilegeList.size()]), false);
       }

      
       //order the ACL
       reorderAccessControlEntries(acl, principal, order);
      
      accessControlManager.setPolicy(resourcePath, acl);
      if (log.isDebugEnabled()) {
        List<String> oldGrantedNames = new ArrayList<String>(oldGrants.size());
        for (Privilege privilege : oldGrants) {
          oldGrantedNames.add(privilege.getName());
        }
        List<String> oldDeniedNames = new ArrayList<String>(oldDenies.size());
        for (Privilege privilege : oldDenies) {
          oldDeniedNames.add(privilege.getName());
        }
        log.debug("Updated ACE for principalName {} for resource {} from grants {}, denies {} to grants {}, denies {}", new Object [] {
            principal.getName(), resourcePath, oldGrantedNames, oldDeniedNames, newGrantedPrivilegeNames, newDeniedPrivilegeNames
          });
      }
View Full Code Here


      throws RepositoryException {
    Set<String> originalPrivilegeNames = new HashSet<String>();
    if (privilegeNames != null) {
      for (String privilegeName : privilegeNames) {
        originalPrivilegeNames.add(privilegeName);
        Privilege privilege = accessControlManager.privilegeFromName(privilegeName);
        disaggregatedPrivilegeNames.addAll(disaggregateToPrivilegeNames(privilege));
      }
    }
    return originalPrivilegeNames;
  }
View Full Code Here

        }
         
        if (granted.size() == 1) {
          //check if the single privilege is jcr:all or jcr:read
          Iterator<Privilege> iterator = granted.iterator();
          Privilege next = iterator.next();
          if ("jcr:all".equals(next.getName())) {
            //full control privilege set
            return getResourceBundle(locale).getString("privilegeset.all");
          } else if ("jcr:read".equals(next.getName())) {
            //readonly privilege set
            return getResourceBundle(locale).getString("privilegeset.readonly");
          }
        } else if (granted.size() == 2) {
          //check if the two privileges are jcr:read and jcr:write
          Iterator<Privilege> iterator = granted.iterator();
          Privilege next = iterator.next();
          Privilege next2 = iterator.next();
          if ( ("jcr:read".equals(next.getName()) && "jcr:write".equals(next2.getName())) ||
              ("jcr:read".equals(next2.getName()) && "jcr:write".equals(next.getName())) ) {
            //read/write privileges
            return getResourceBundle(locale).getString("privilegeset.readwrite");
          }
        }
View Full Code Here

    @Test
    public void testGetRegisteredPrivileges() throws RepositoryException {
        Privilege[] registered = privilegeManager.getRegisteredPrivileges();
        Set<Privilege> set = new HashSet<Privilege>();
        Privilege all = privilegeManager.getPrivilege(Privilege.JCR_ALL);
        set.add(all);
        set.addAll(Arrays.asList(all.getAggregatePrivileges()));

        for (Privilege p : registered) {
            assertTrue(p.getName(), set.remove(p));
        }
        assertTrue(set.isEmpty());
View Full Code Here

        }
    }

    @Test
    public void testJcrAll() throws RepositoryException {
        Privilege all = privilegeManager.getPrivilege(Privilege.JCR_ALL);
        assertPrivilege(all, "jcr:all", true, false);

        List<Privilege> decl = Arrays.asList(all.getDeclaredAggregatePrivileges());
        List<Privilege> aggr = new ArrayList<Privilege>(Arrays.asList(all.getAggregatePrivileges()));

        assertFalse(decl.contains(all));
        assertFalse(aggr.contains(all));

        // declared and aggregated privileges are the same for jcr:all
View Full Code Here

        assertTrue(aggr.isEmpty());
    }

    @Test
    public void testGetPrivilegeFromName() throws AccessControlException, RepositoryException {
        Privilege p = privilegeManager.getPrivilege(Privilege.JCR_VERSION_MANAGEMENT);

        assertTrue(p != null);
        assertEquals(PrivilegeConstants.JCR_VERSION_MANAGEMENT, p.getName());
        assertFalse(p.isAggregate());

        p = privilegeManager.getPrivilege(Privilege.JCR_WRITE);

        assertTrue(p != null);
        assertEquals(PrivilegeConstants.JCR_WRITE, p.getName());
        assertTrue(p.isAggregate());
    }
View Full Code Here

    private String getNewPrivilegeName(Workspace wsp) throws RepositoryException, NotExecutableException {
        String privName = null;
        AccessControlManager acMgr = wsp.getSession().getAccessControlManager();
        for (int i = 0; i < 100; i++) {
            try {
                Privilege p = acMgr.privilegeFromName(privName);
                privName = "privilege-" + i;
            } catch (Exception e) {
                break;
            }
        }
View Full Code Here

    /**
     * <a href="https://issues.apache.org/jira/browse/OAK-1026">OAK-1026</a>
     */
    @Test
    public void testEntryWithAggregatePrivileges() throws Exception {
        Privilege write = acMgr.privilegeFromName(Privilege.JCR_WRITE);
        acl.addEntry(testPrincipal, write.getAggregatePrivileges(), true);

        AccessControlEntry[] entries = acl.getAccessControlEntries();
        assertEquals(1, entries.length);
        assertArrayEquals(new Privilege[]{write}, entries[0].getPrivileges());

View Full Code Here

                            Map<String, Value[]> mvRestrictions) throws RepositoryException {
        if (privileges == null || privileges.length == 0) {
            throw new AccessControlException("Privileges may not be null nor an empty array");
        }
        for (Privilege p : privileges) {
            Privilege pv = privilegeManager.getPrivilege(p.getName());
            if (pv.isAbstract()) {
                throw new AccessControlException("Privilege " + p + " is abstract.");
            }
        }

        Util.checkValidPrincipal(principal, principalManager);
View Full Code Here

        if (privilegeNames == null || Iterables.isEmpty(privilegeNames)) {
            throw accessViolation(9, "Missing privileges.");
        }
        for (String privilegeName : privilegeNames) {
            try {
                Privilege privilege = privilegeManager.getPrivilege(privilegeName);
                if (privilege.isAbstract()) {
                    throw accessViolation(11, "Abstract privilege " + privilegeName);
                }
            } catch (AccessControlException e) {
                throw accessViolation(10, "Invalid privilege " + privilegeName);
            } catch (RepositoryException e) {
View Full Code Here

TOP

Related Classes of javax.jcr.security.Privilege

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.