Class JdbcAclService
- java.lang.Object
-
- org.springframework.security.acls.jdbc.JdbcAclService
-
- All Implemented Interfaces:
AclService
- Direct Known Subclasses:
JdbcMutableAclService
public class JdbcAclService extends java.lang.Object implements AclService
Simple JDBC-based implementation ofAclService
.Requires the "dirty" flags in
AclImpl
andAccessControlEntryImpl
to be set, so that the implementation can detect changed parameters easily.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.jdbc.core.JdbcOperations
jdbcOperations
protected static org.apache.commons.logging.Log
log
-
Constructor Summary
Constructors Constructor Description JdbcAclService(javax.sql.DataSource dataSource, LookupStrategy lookupStrategy)
JdbcAclService(org.springframework.jdbc.core.JdbcOperations jdbcOperations, LookupStrategy lookupStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<ObjectIdentity>
findChildren(ObjectIdentity parentIdentity)
Locates all object identities that use the specified parent.protected boolean
isAclClassIdSupported()
Acl
readAclById(ObjectIdentity object)
Same asAclService.readAclsById(List)
except it returns only a single Acl.Acl
readAclById(ObjectIdentity object, java.util.List<Sid> sids)
Same asAclService.readAclsById(List, List)
except it returns only a single Acl.java.util.Map<ObjectIdentity,Acl>
readAclsById(java.util.List<ObjectIdentity> objects)
Obtains all the Acls that apply for the passed Objects.java.util.Map<ObjectIdentity,Acl>
readAclsById(java.util.List<ObjectIdentity> objects, java.util.List<Sid> sids)
Obtains all the Acls that apply for the passed Objects, but only for the security identifies passed.void
setAclClassIdSupported(boolean aclClassIdSupported)
void
setConversionService(org.springframework.core.convert.ConversionService conversionService)
void
setFindChildrenQuery(java.lang.String findChildrenSql)
Allows customization of the SQL query used to find child object identities.
-
-
-
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 interfaceAclService
- Parameters:
parentIdentity
- to locate children of- Returns:
- the children (or null if none were found)
-
readAclById
public Acl readAclById(ObjectIdentity object, java.util.List<Sid> sids) throws NotFoundException
Description copied from interface:AclService
Same asAclService.readAclsById(List, List)
except it returns only a single Acl.- Specified by:
readAclById
in interfaceAclService
- Parameters:
object
- to locate anAcl
forsids
- the security identities for whichAcl
information is required (may be null to denote all entries)- Returns:
- the
Acl
for the requestedObjectIdentity
(never null) - Throws:
NotFoundException
- if anAcl
was not found for the requestedObjectIdentity
-
readAclById
public Acl readAclById(ObjectIdentity object) throws NotFoundException
Description copied from interface:AclService
Same asAclService.readAclsById(List)
except it returns only a single Acl.This method should not be called as it does not leverage the underlying implementation's potential ability to filter Acl entries based on a
Sid
parameter.- Specified by:
readAclById
in interfaceAclService
- Parameters:
object
- to locate anAcl
for- Returns:
- the
Acl
for the requestedObjectIdentity
(never null) - Throws:
NotFoundException
- if anAcl
was not found for the requestedObjectIdentity
-
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 interfaceAclService
- Parameters:
objects
- the objects to findAcl
information for- Returns:
- a map with exactly one element for each
ObjectIdentity
passed as an argument (never null) - Throws:
NotFoundException
- if anAcl
was not found for each requestedObjectIdentity
-
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 interfaceAclService
- Parameters:
objects
- the objects to findAcl
information forsids
- the security identities for whichAcl
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 anAcl
was not found for each requestedObjectIdentity
-
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()
-
-