Class JdbcAclService

  • All Implemented Interfaces:
    AclService
    Direct Known Subclasses:
    JdbcMutableAclService

    public class JdbcAclService
    extends java.lang.Object
    implements AclService
    Simple JDBC-based implementation of AclService.

    Requires the "dirty" flags in AclImpl and AccessControlEntryImpl to be set, so that the implementation can detect changed parameters easily.

    • Field Detail

      • log

        protected static final org.apache.commons.logging.Log log
      • jdbcOperations

        protected final org.springframework.jdbc.core.JdbcOperations jdbcOperations
    • Constructor Detail

      • JdbcAclService

        public JdbcAclService​(javax.sql.DataSource dataSource,
                              LookupStrategy lookupStrategy)
      • JdbcAclService

        public JdbcAclService​(org.springframework.jdbc.core.JdbcOperations jdbcOperations,
                              LookupStrategy lookupStrategy)
    • Method Detail

      • findChildren

        public java.util.List<ObjectIdentity> findChildren​(ObjectIdentity parentIdentity)
        Description copied from interface: AclService
        Locates all object identities that use the specified parent. This is useful for administration tools.
        Specified by:
        findChildren in interface AclService
        Parameters:
        parentIdentity - to locate children of
        Returns:
        the children (or null if none were found)
      • readAclsById

        public java.util.Map<ObjectIdentity,​Acl> readAclsById​(java.util.List<ObjectIdentity> objects)
                                                             throws NotFoundException
        Description copied from interface: AclService
        Obtains all the Acls that apply for the passed Objects.

        The returned map is keyed on the passed objects, with the values being the Acl instances. Any unknown objects will not have a map key.

        Specified by:
        readAclsById in interface AclService
        Parameters:
        objects - the objects to find Acl information for
        Returns:
        a map with exactly one element for each ObjectIdentity passed as an argument (never null)
        Throws:
        NotFoundException - if an Acl was not found for each requested ObjectIdentity
      • readAclsById

        public java.util.Map<ObjectIdentity,​Acl> readAclsById​(java.util.List<ObjectIdentity> objects,
                                                                    java.util.List<Sid> sids)
                                                             throws NotFoundException
        Description copied from interface: AclService
        Obtains all the Acls that apply for the passed Objects, but only for the security identifies passed.

        Implementations MAY provide a subset of the ACLs via this method although this is NOT a requirement. This is intended to allow performance optimisations within implementations. Callers should therefore use this method in preference to the alternative overloaded version which does not have performance optimisation opportunities.

        The returned map is keyed on the passed objects, with the values being the Acl instances. Any unknown objects (or objects for which the interested Sids do not have entries) will not have a map key.

        Specified by:
        readAclsById in interface AclService
        Parameters:
        objects - the objects to find Acl information for
        sids - the security identities for which Acl information is required (may be null to denote all entries)
        Returns:
        a map with exactly one element for each ObjectIdentity passed as an argument (never null)
        Throws:
        NotFoundException - if an Acl was not found for each requested ObjectIdentity
      • setFindChildrenQuery

        public void setFindChildrenQuery​(java.lang.String findChildrenSql)
        Allows customization of the SQL query used to find child object identities.
        Parameters:
        findChildrenSql -
      • setAclClassIdSupported

        public void setAclClassIdSupported​(boolean aclClassIdSupported)
      • setConversionService

        public void setConversionService​(org.springframework.core.convert.ConversionService conversionService)
      • isAclClassIdSupported

        protected boolean isAclClassIdSupported()