Package org.apache.jackrabbit.api.security.authorization

Examples of org.apache.jackrabbit.api.security.authorization.PrivilegeManager


     * @since oak
     */
    @Test
    public void testCustomPrivilegeVisibleAfterRefresh() throws RepositoryException {
        Session s2 = getAdminSession();
        PrivilegeManager pm = getPrivilegeManager(s2);
        try {
            boolean isAbstract = false;
            String privName = "testCustomPrivilegeVisibleAfterRefresh";
            privilegeManager.registerPrivilege(privName, isAbstract, new String[0]);

            // before refreshing: privilege not visible
            try {
                Privilege priv = pm.getPrivilege(privName);
                fail("Custom privilege will show up after Session#refresh()");
            } catch (AccessControlException e) {
                // success
            }

            // latest after refresh privilege manager must be updated
            s2.refresh(true);
            Privilege priv = pm.getPrivilege(privName);
            assertEquals(privName, priv.getName());
            assertEquals(isAbstract, priv.isAbstract());
            assertFalse(priv.isAggregate());
        } finally {
            s2.logout();
View Full Code Here


        }
    }

    @Test
    public void testAbstractPrivilege() throws Exception {
        PrivilegeManager pMgr = getPrivilegeManager(root);
        pMgr.registerPrivilege("abstractPrivilege", true, new String[0]);

        NodeUtil acl = createAcl();
        createACE(acl, "invalid", NT_REP_GRANT_ACE, testPrincipal.getName(), "abstractPrivilege");
        try {
            root.commit();
View Full Code Here

        JcrPackage pack = packMgr.upload(getStream("testpackages/privileges.zip"), false);
        assertNotNull(pack);
        pack.install(getDefaultOptions());

        // check if privilege was installed
        PrivilegeManager mgr = ((JackrabbitWorkspace) admin.getWorkspace()).getPrivilegeManager();
        try {
            mgr.getPrivilege("testns:testpriv");
        } catch (RepositoryException e) {
            fail("testns:testpriv privilege not registered.");
        }
    }
View Full Code Here

        Workspace wsp = session.getWorkspace();
        if (!(wsp instanceof JackrabbitWorkspace)) {
            throw new RepositoryException("Unable to register privileges. No JackrabbitWorkspace.");
        }
        PrivilegeManager mgr = ((JackrabbitWorkspace) wsp).getPrivilegeManager();

        ProgressTrackerListener.Mode mode = null;
        if (tracker != null) {
            mode = tracker.setMode(ProgressTrackerListener.Mode.TEXT);
        }

        // register namespaces
        Map<String, String> pfxToURI = defs.getNamespaceMapping().getPrefixToURIMapping();
        if (!pfxToURI.isEmpty()) {
            for (Object o : pfxToURI.keySet()) {
                String prefix = (String) o;
                String uri = pfxToURI.get(prefix);
                try {
                    session.getNamespacePrefix(uri);
                    track(tracker, "-", prefix + " -> " + uri);
                } catch (RepositoryException e) {
                    session.getWorkspace().getNamespaceRegistry().registerNamespace(prefix, uri);
                    track(tracker, "A", prefix + " -> " + uri);
                }
            }
        }

        // register node types
        List<Privilege> registeredPrivs = new LinkedList<Privilege>();
        for (PrivilegeDefinition def: defs.getDefinitions()) {
            String name = getJCRName(def.getName());
            Privilege priv = null;
            try {
                priv = mgr.getPrivilege(name);
            } catch (RepositoryException e) {
                // ignore, already registered
            }
            if (priv == null) {
                String[] aggregateNames = new String[def.getDeclaredAggregateNames().size()];
                int i=0;
                for (Name n: def.getDeclaredAggregateNames()) {
                    aggregateNames[i++] = getJCRName(n);
                }
                registeredPrivs.add(mgr.registerPrivilege(name, def.isAbstract(), aggregateNames));
                track(tracker, "A", name);
            } else {
                track(tracker, "-", name);
            }
        }
View Full Code Here

            if (controlledNode.hasNode(N_POLICY)) {
                // policy child node without node being access controlled
                log.warn("Colliding rep:policy child without node being access controllable ({}).", nodePath);
            } else {
                String mixin = session.getJCRName(NT_REP_ACCESS_CONTROLLABLE);
                PrivilegeManager privMgr = ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager();
                if (controlledNode.isNodeType(mixin) || controlledNode.canAddMixin(mixin)) {
                    acl = new ACLTemplate(nodePath, session.getPrincipalManager(),
                            privMgr, session.getValueFactory(), session);
                } else {
                    log.warn("Node {} cannot be made access controllable.", nodePath);
View Full Code Here

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        SessionImpl s = (SessionImpl) superuser;
        PrivilegeManager privMgr = ((JackrabbitWorkspace) superuser.getWorkspace()).getPrivilegeManager();

        acl = new ACLTemplate(testPath, s.getPrincipalManager(), privMgr, s.getValueFactory(), s, false);
    }
View Full Code Here

            // has colliding rep:policy or rep:repoPolicy child node set.
            if (controlledNode.hasNode(aclName)) {
                // policy child node without node being access controlled
                log.warn("Colliding policy child without node being access controllable ({}).", nodePath);
            } else {
                PrivilegeManager privMgr = ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager();
                if (controlledNode.isNodeType(mixin) || controlledNode.canAddMixin(mixin)) {
                    acl = new ACLTemplate(nodePath, session.getPrincipalManager(),
                            privMgr, session.getValueFactory(), session, allowUnknownPrincipals);
                } else {
                    log.warn("Node {} cannot be made access controllable.", nodePath);
View Full Code Here

            // has colliding rep:policy or rep:repoPolicy child node set.
            if (controlledNode.hasNode(aclName)) {
                // policy child node without node being access controlled
                log.warn("Colliding policy child without node being access controllable ({}).", nodePath);
            } else {
                PrivilegeManager privMgr = ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager();
                if (controlledNode.isNodeType(mixin) || controlledNode.canAddMixin(mixin)) {
                    acl = new ACLTemplate(nodePath, session.getPrincipalManager(),
                            privMgr, session.getValueFactory(), session);
                } else {
                    log.warn("Node {} cannot be made access controllable.", nodePath);
View Full Code Here

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        SessionImpl s = (SessionImpl) superuser;
        PrivilegeManager privMgr = ((JackrabbitWorkspace) superuser.getWorkspace()).getPrivilegeManager();

        acl = new ACLTemplate(testPath, s.getPrincipalManager(), privMgr, s.getValueFactory(), s);
    }
View Full Code Here

        ImmutableTree rootAfter = new ImmutableTree(after);

        RestrictionProvider restrictionProvider = getConfig(AuthorizationConfiguration.class).getRestrictionProvider();

        Root root = new ImmutableRoot(before);
        PrivilegeManager privilegeManager = getConfig(PrivilegeConfiguration.class).getPrivilegeManager(root, NamePathMapper.DEFAULT);
        PrivilegeBitsProvider privilegeBitsProvider = new PrivilegeBitsProvider(root);

        return new AccessControlValidator(rootAfter, privilegeManager, privilegeBitsProvider, restrictionProvider);
    }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.api.security.authorization.PrivilegeManager

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.