Search in sources :

Example 21 with PrivilegeDefinition

use of org.apache.jackrabbit.spi.PrivilegeDefinition in project jackrabbit by apache.

the class PrivilegeHandlerTest method testReadInputStream.

public void testReadInputStream() throws Exception {
    InputStream in = getClass().getResourceAsStream("readtest.xml");
    PrivilegeDefinitionReader reader = new PrivilegeDefinitionReader(in, CONTENT_TYPE);
    Map<Name, PrivilegeDefinition> defs = new HashMap<Name, PrivilegeDefinition>();
    for (PrivilegeDefinition def : reader.getPrivilegeDefinitions()) {
        defs.put(def.getName(), def);
    }
    for (PrivilegeDefinition def : DEF_EXPECTED) {
        PrivilegeDefinition e = defs.remove(def.getName());
        assertNotNull("Definition " + def.getName() + " missing");
        assertEquals("Definition mismatch.", def, e);
    }
    assertTrue("Not all definitions present", defs.isEmpty());
    // check for namespace
    String fooUri = reader.getNamespaces().get(TEST_PREFIX);
    assertEquals("Namespace included", TEST_URI, fooUri);
}
Also used : HashMap(java.util.HashMap) InputStream(java.io.InputStream) PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) Name(org.apache.jackrabbit.spi.Name)

Example 22 with PrivilegeDefinition

use of org.apache.jackrabbit.spi.PrivilegeDefinition in project jackrabbit by apache.

the class CustomPrivilegeTest method testCustomDefinitionsWithCyclicReferences.

public void testCustomDefinitionsWithCyclicReferences() throws RepositoryException, FileSystemException, IOException {
    // setup the custom privilege file with cyclic references
    FileSystem fs = ((RepositoryImpl) superuser.getRepository()).getConfig().getFileSystem();
    FileSystemResource resource = new FileSystemResource(fs, "/privileges/custom_privileges.xml");
    if (!resource.exists()) {
        resource.makeParentDirs();
    }
    NameFactory nf = NameFactoryImpl.getInstance();
    Name test = nf.create(Name.NS_DEFAULT_URI, "test");
    Name test2 = nf.create(Name.NS_DEFAULT_URI, "test2");
    Name test3 = nf.create(Name.NS_DEFAULT_URI, "test3");
    Name test4 = nf.create(Name.NS_DEFAULT_URI, "test4");
    Name test5 = nf.create(Name.NS_DEFAULT_URI, "test5");
    OutputStream out = resource.getOutputStream();
    try {
        List<PrivilegeDefinition> defs = new ArrayList<PrivilegeDefinition>();
        defs.add(new PrivilegeDefinitionImpl(test, false, Collections.singleton(test2)));
        defs.add(new PrivilegeDefinitionImpl(test4, true, Collections.singleton(test5)));
        defs.add(new PrivilegeDefinitionImpl(test5, false, Collections.singleton(test3)));
        defs.add(new PrivilegeDefinitionImpl(test3, false, Collections.singleton(test)));
        defs.add(new PrivilegeDefinitionImpl(test2, false, Collections.singleton(test4)));
        PrivilegeDefinitionWriter pdw = new PrivilegeDefinitionWriter("text/xml");
        pdw.writeDefinitions(out, defs.toArray(new PrivilegeDefinition[defs.size()]), Collections.<String, String>emptyMap());
        new PrivilegeRegistry(superuser.getWorkspace().getNamespaceRegistry(), fs);
        fail("Cyclic definitions must be detected upon registry startup.");
    } catch (RepositoryException e) {
    // success
    } finally {
        out.close();
        fs.deleteFolder("/privileges");
    }
}
Also used : PrivilegeDefinitionImpl(org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionImpl) FileSystem(org.apache.jackrabbit.core.fs.FileSystem) OutputStream(java.io.OutputStream) ArrayList(java.util.ArrayList) PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) RepositoryException(javax.jcr.RepositoryException) FileSystemResource(org.apache.jackrabbit.core.fs.FileSystemResource) PrivilegeDefinitionWriter(org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionWriter) NameFactory(org.apache.jackrabbit.spi.NameFactory) Name(org.apache.jackrabbit.spi.Name)

Example 23 with PrivilegeDefinition

use of org.apache.jackrabbit.spi.PrivilegeDefinition in project jackrabbit by apache.

the class CustomPrivilegeTest method testRegister100CustomPrivileges.

public void testRegister100CustomPrivileges() throws RepositoryException, FileSystemException {
    PrivilegeBits previous = privilegeRegistry.getBits(privilegeRegistry.get(PrivilegeRegistry.REP_PRIVILEGE_MANAGEMENT_NAME)).unmodifiable();
    for (int i = 0; i < 100; i++) {
        boolean isAbstract = true;
        Name name = ((SessionImpl) superuser).getQName("test" + i);
        privilegeRegistry.registerDefinition(name, isAbstract, Collections.<Name>emptySet());
        PrivilegeDefinition definition = privilegeRegistry.get(name);
        assertNotNull(definition);
        assertEquals(name, definition.getName());
        PrivilegeBits modifiable = privilegeRegistry.getBits(definition);
        PrivilegeBits bits = modifiable.unmodifiable();
        assertNotNull(bits);
        assertFalse(bits.isEmpty());
        assertEquals(modifiable, bits);
        assertFalse(previous.equals(bits));
        assertEquals(previous.nextBits(), bits);
        PrivilegeDefinition all = privilegeRegistry.get(NameConstants.JCR_ALL);
        assertTrue(all.getDeclaredAggregateNames().contains(name));
        assertTrue(privilegeRegistry.getBits(all).includes(bits));
        previous = bits;
    }
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) SessionImpl(org.apache.jackrabbit.core.SessionImpl) Name(org.apache.jackrabbit.spi.Name)

Example 24 with PrivilegeDefinition

use of org.apache.jackrabbit.spi.PrivilegeDefinition in project jackrabbit by apache.

the class PrivilegeRegistryTest method testRepWrite.

public void testRepWrite() throws RepositoryException {
    PrivilegeDefinition p = privilegeRegistry.get(NameConstants.JCR_WRITE);
    assertEquals(p.getName(), NameConstants.JCR_WRITE);
    assertFalse(p.getDeclaredAggregateNames().isEmpty());
    assertFalse(p.isAbstract());
    Set<Name> l = new HashSet<Name>(p.getDeclaredAggregateNames());
    assertTrue(l.remove(NameConstants.JCR_MODIFY_PROPERTIES));
    assertTrue(l.remove(NameConstants.JCR_ADD_CHILD_NODES));
    assertTrue(l.remove(NameConstants.JCR_REMOVE_CHILD_NODES));
    assertTrue(l.remove(NameConstants.JCR_REMOVE_NODE));
    assertTrue(l.isEmpty());
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) HashSet(java.util.HashSet) Name(org.apache.jackrabbit.spi.Name)

Example 25 with PrivilegeDefinition

use of org.apache.jackrabbit.spi.PrivilegeDefinition in project jackrabbit by apache.

the class PrivilegeRegistryTest method testJcrWrite.

public void testJcrWrite() throws RepositoryException {
    Name rw = resolver.getQName(PrivilegeRegistry.REP_WRITE);
    PrivilegeDefinition p = privilegeRegistry.get(rw);
    assertEquals(p.getName(), rw);
    assertFalse(p.getDeclaredAggregateNames().isEmpty());
    assertFalse(p.isAbstract());
    Set<Name> l = new HashSet<Name>(p.getDeclaredAggregateNames());
    assertTrue(l.remove(NameConstants.JCR_WRITE));
    assertTrue(l.remove(NameConstants.JCR_NODE_TYPE_MANAGEMENT));
    assertTrue(l.isEmpty());
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) Name(org.apache.jackrabbit.spi.Name) HashSet(java.util.HashSet)

Aggregations

PrivilegeDefinition (org.apache.jackrabbit.spi.PrivilegeDefinition)30 Name (org.apache.jackrabbit.spi.Name)20 HashMap (java.util.HashMap)11 HashSet (java.util.HashSet)7 PrivilegeDefinitionImpl (org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionImpl)7 RepositoryException (javax.jcr.RepositoryException)5 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)4 LinkedHashMap (java.util.LinkedHashMap)4 Privilege (javax.jcr.security.Privilege)4 StringReader (java.io.StringReader)3 InputStream (java.io.InputStream)2 OutputStream (java.io.OutputStream)2 DocumentBuilder (javax.xml.parsers.DocumentBuilder)2 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)2 FileSystem (org.apache.jackrabbit.core.fs.FileSystem)2 FileSystemResource (org.apache.jackrabbit.core.fs.FileSystemResource)2 NameFactory (org.apache.jackrabbit.spi.NameFactory)2 DefaultNamePathResolver (org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver)2 NamePathResolver (org.apache.jackrabbit.spi.commons.conversion.NamePathResolver)2