Spring Security Framework

org.springframework.security.acls.jdbc
Class BasicLookupStrategy

java.lang.Object
  extended by org.springframework.security.acls.jdbc.BasicLookupStrategy
All Implemented Interfaces:
LookupStrategy

public final class BasicLookupStrategy
extends Object
implements LookupStrategy

Performs lookups in a manner that is compatible with ANSI SQL.

NB: This implementation does attempt to provide reasonably optimised lookups - within the constraints of a normalised database and standard ANSI SQL features. If you are willing to sacrifice either of these constraints (eg use a particular database feature such as hierarchical queries or materalized views, or reduce normalisation) you are likely to achieve better performance. In such situations you will need to provide your own custom LookupStrategy. This class does not support subclassing, as it is likely to change in future releases and therefore subclassing is unsupported.

Version:
$Id$
Author:
Ben Alex

Constructor Summary
BasicLookupStrategy(DataSource dataSource, AclCache aclCache, AclAuthorizationStrategy aclAuthorizationStrategy, AuditLogger auditLogger)
          Constructor accepting mandatory arguments
 
Method Summary
protected  Permission convertMaskIntoPermission(int mask)
           
 Map readAclsById(ObjectIdentity[] objects, Sid[] sids)
          The main method.
 void setBatchSize(int batchSize)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BasicLookupStrategy

public BasicLookupStrategy(DataSource dataSource,
                           AclCache aclCache,
                           AclAuthorizationStrategy aclAuthorizationStrategy,
                           AuditLogger auditLogger)
Constructor accepting mandatory arguments

Parameters:
dataSource - to access the database
aclCache - the cache where fully-loaded elements can be stored
aclAuthorizationStrategy - authorization strategy (required)
Method Detail

convertMaskIntoPermission

protected Permission convertMaskIntoPermission(int mask)

readAclsById

public Map readAclsById(ObjectIdentity[] objects,
                        Sid[] sids)
The main method.

WARNING: This implementation completely disregards the "sids" argument! Every item in the cache is expected to contain all SIDs. If you have serious performance needs (eg a very large number of SIDs per object identity), you'll probably want to develop a custom LookupStrategy implementation instead.

The implementation works in batch sizes specfied by batchSize.

Specified by:
readAclsById in interface LookupStrategy
Parameters:
objects - the identities to lookup (required)
sids - the SIDs for which identities are required (ignored by this implementation)
Returns:
a Map where keys represent the ObjectIdentity of the located Acl and values are the located Acl (never null although some entries may be missing; this method should not throw NotFoundException, as a chain of LookupStrategys may be used to automatically create entries if required)

setBatchSize

public void setBatchSize(int batchSize)

Spring Security Framework

Copyright © 2004-2010 SpringSource, Inc. All Rights Reserved.