Search in sources :

Example 1 with PrivilegeDefinition

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

the class PrivilegeRecord method doWrite.

@Override
protected void doWrite() throws JournalException {
    record.writeChar(IDENTIFIER);
    record.writeInt(definitions.size());
    for (PrivilegeDefinition def : definitions) {
        record.writePrivilegeDef(def);
    }
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition)

Example 2 with PrivilegeDefinition

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

the class AbstractRecord method readPrivilegeDef.

/**
     * {@inheritDoc}
     */
public PrivilegeDefinition readPrivilegeDef() throws JournalException {
    try {
        StringReader sr = new StringReader(readString());
        PrivilegeDefinitionReader reader = new PrivilegeDefinitionReader(sr, "text/xml");
        PrivilegeDefinition[] defs = reader.getPrivilegeDefinitions();
        if (defs.length != 1) {
            throw new JournalException("Expected one privilege definition: got " + defs.length);
        }
        return defs[0];
    } catch (org.apache.jackrabbit.spi.commons.privilege.ParseException e) {
        String msg = "Parse error while reading privilege definition.";
        throw new JournalException(msg, e);
    }
}
Also used : StringReader(java.io.StringReader) PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) PrivilegeDefinitionReader(org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionReader)

Example 3 with PrivilegeDefinition

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

the class PrivilegeRegistryTest method testGet.

public void testGet() throws RepositoryException {
    for (PrivilegeDefinition def : privilegeRegistry.getAll()) {
        PrivilegeDefinition d = privilegeRegistry.get(def.getName());
        assertEquals(def, d);
        assertNotNull(d.getName());
        assertEquals(def.getName(), d.getName());
        assertFalse(d.isAbstract());
        assertEquals(def.isAbstract(), d.isAbstract());
        assertNotNull(d.getDeclaredAggregateNames());
        assertTrue(def.getDeclaredAggregateNames().containsAll(d.getDeclaredAggregateNames()));
        assertTrue(d.getDeclaredAggregateNames().containsAll(def.getDeclaredAggregateNames()));
        assertFalse(privilegeRegistry.getBits(d).isEmpty());
    }
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition)

Example 4 with PrivilegeDefinition

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

the class PrivilegeRegistryTest method testPrivilegeDefinition.

public void testPrivilegeDefinition() throws RepositoryException {
    for (PrivilegeDefinition def : privilegeRegistry.getAll()) {
        assertNotNull(def.getName());
        assertFalse(def.isAbstract());
        assertNotNull(def.getDeclaredAggregateNames());
        assertFalse(privilegeRegistry.getBits(def).isEmpty());
    }
}
Also used : PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition)

Example 5 with PrivilegeDefinition

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

the class RepositoryServiceImpl method internalGetPrivilegeDefinitions.

private PrivilegeDefinition[] internalGetPrivilegeDefinitions(SessionInfo sessionInfo, String uri) throws RepositoryException {
    DavPropertyNameSet nameSet = new DavPropertyNameSet();
    nameSet.add(SecurityConstants.SUPPORTED_PRIVILEGE_SET);
    HttpPropfind request = null;
    try {
        request = new HttpPropfind(uri, nameSet, DEPTH_0);
        HttpResponse response = executeRequest(sessionInfo, request);
        request.checkSuccess(response);
        MultiStatusResponse[] mresponses = request.getResponseBodyAsMultiStatus(response).getResponses();
        if (mresponses.length < 1) {
            throw new PathNotFoundException("Unable to retrieve privileges definitions.");
        }
        DavPropertyName displayName = SecurityConstants.SUPPORTED_PRIVILEGE_SET;
        DavProperty<?> p = mresponses[0].getProperties(DavServletResponse.SC_OK).get(displayName);
        if (p == null) {
            return new PrivilegeDefinition[0];
        } else {
            // build PrivilegeDefinition(s) from the supported-privileges dav property
            Map<Name, SupportedPrivilege> spMap = new HashMap<Name, SupportedPrivilege>();
            fillSupportedPrivilegeMap(new SupportedPrivilegeSetProperty(p).getValue(), spMap, getNameFactory());
            List<PrivilegeDefinition> pDefs = new ArrayList<PrivilegeDefinition>();
            for (Name privilegeName : spMap.keySet()) {
                SupportedPrivilege sp = spMap.get(privilegeName);
                Set<Name> aggrnames = null;
                SupportedPrivilege[] aggregates = sp.getSupportedPrivileges();
                if (aggregates != null && aggregates.length > 0) {
                    aggrnames = new HashSet<Name>();
                    for (SupportedPrivilege aggregate : aggregates) {
                        Name aggregateName = nameFactory.create(aggregate.getPrivilege().getNamespace().getURI(), aggregate.getPrivilege().getName());
                        aggrnames.add(aggregateName);
                    }
                }
                PrivilegeDefinition def = new PrivilegeDefinitionImpl(privilegeName, sp.isAbstract(), aggrnames);
                pDefs.add(def);
            }
            return pDefs.toArray(new PrivilegeDefinition[pDefs.size()]);
        }
    } catch (IOException e) {
        throw new RepositoryException(e);
    } catch (DavException e) {
        throw ExceptionConverter.generate(e);
    } finally {
        if (request != null) {
            request.releaseConnection();
        }
    }
}
Also used : ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) DavException(org.apache.jackrabbit.webdav.DavException) MultiStatusResponse(org.apache.jackrabbit.webdav.MultiStatusResponse) ArrayList(java.util.ArrayList) HttpResponse(org.apache.http.HttpResponse) PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) RepositoryException(javax.jcr.RepositoryException) IOException(java.io.IOException) DavPropertyName(org.apache.jackrabbit.webdav.property.DavPropertyName) DavPropertyName(org.apache.jackrabbit.webdav.property.DavPropertyName) Name(org.apache.jackrabbit.spi.Name) HttpPropfind(org.apache.jackrabbit.webdav.client.methods.HttpPropfind) PrivilegeDefinitionImpl(org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionImpl) DavPropertyNameSet(org.apache.jackrabbit.webdav.property.DavPropertyNameSet) SupportedPrivilegeSetProperty(org.apache.jackrabbit.webdav.security.SupportedPrivilegeSetProperty) PathNotFoundException(javax.jcr.PathNotFoundException) SupportedPrivilege(org.apache.jackrabbit.webdav.security.SupportedPrivilege)

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