Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.acegisecurity.acl.basic.jdbc
Class JdbcDaoImpl

    java.lang.Object
      org.springframework.dao.support.DaoSupport
          org.springframework.jdbc.core.support.JdbcDaoSupport
              org.acegisecurity.acl.basic.jdbc.JdbcDaoImpl

All Implemented Interfaces:
  BasicAclDao, InitializingBean

Direct Known Subclasses:
  JdbcExtendedDaoImpl

    public class JdbcDaoImpl

extends JdbcDaoSupport
implements BasicAclDao

Retrieves ACL details from a JDBC location.

A default database structure is assumed. This may be overridden by setting the default query strings to use. If this does not provide enough flexibility, another strategy would be to subclass this class and override the `MappingSqlQuery` instance used, via the `initMappingSqlQueries()` extension point.

Nested Class Summary
`protected class` | `JdbcDaoImpl.AclDetailsHolder` Used to hold details of a domain object instance's properties, or an individual ACL entry.
`protected class` | `JdbcDaoImpl.AclsByObjectIdentityMapping` Query object to look up individual ACL entries.
`protected class` | `JdbcDaoImpl.ObjectPropertiesMapping` Query object to look up properties for an object identity.

Field Summary
`protected MappingSqlQuery` | `aclsByObjectIdentity`
`static String` | `DEF_ACLS_BY_OBJECT_IDENTITY_QUERY`
`static String` | `DEF_OBJECT_PROPERTIES_QUERY`
`protected MappingSqlQuery` | `objectProperties`
`static String` | `RECIPIENT_USED_FOR_INHERITENCE_MARKER`

Constructor Summary
`JdbcDaoImpl()`

Method Summary
`protected String` | `convertAclObjectIdentityToString(AclObjectIdentity aclObjectIdentity)` Responsible for covering a `AclObjectIdentity` to a `String` that can be located in the RDBMS.
`BasicAclEntry[]` | `getAcls(AclObjectIdentity aclObjectIdentity)` Returns the ACLs associated with the requested `AclObjectIdentity`.
`MappingSqlQuery` | `getAclsByObjectIdentity()`
`String` | `getAclsByObjectIdentityQuery()`
`String` | `getObjectPropertiesQuery()`
`protected void` | `initDao()`
`protected void` | `initMappingSqlQueries()` Extension point to allow other MappingSqlQuery objects to be substituted in a subclass
`void` | `setAclsByObjectIdentity(MappingSqlQuery aclsByObjectIdentityQuery)`
`void` | `setAclsByObjectIdentityQuery(String queryString)` Allows the default query string used to retrieve ACLs based on object identity to be overriden, if default table or column names need to be changed.
`void` | `setObjectProperties(MappingSqlQuery objectPropertiesQuery)`
`void` | `setObjectPropertiesQuery(String queryString)`

Methods inherited from class org.springframework.jdbc.core.support.JdbcDaoSupport
`checkDaoConfig, closeConnectionIfNecessary, createJdbcTemplate, getConnection, getDataSource, getExceptionTranslator, getJdbcTemplate, releaseConnection, setDataSource, setJdbcTemplate`

Methods inherited from class org.springframework.dao.support.DaoSupport
`afterPropertiesSet`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### RECIPIENT_USED_FOR_INHERITENCE_MARKER

    public static final String RECIPIENT_USED_FOR_INHERITENCE_MARKER

See Also:
  Constant Field Values

### DEF_ACLS_BY_OBJECT_IDENTITY_QUERY

    public static final String DEF_ACLS_BY_OBJECT_IDENTITY_QUERY

See Also:
  Constant Field Values

### DEF_OBJECT_PROPERTIES_QUERY

    public static final String DEF_OBJECT_PROPERTIES_QUERY

See Also:
  Constant Field Values

### aclsByObjectIdentity

    protected MappingSqlQuery aclsByObjectIdentity

### objectProperties

    protected MappingSqlQuery objectProperties

Constructor Detail

### JdbcDaoImpl

    public JdbcDaoImpl()

Method Detail

### convertAclObjectIdentityToString

    protected String convertAclObjectIdentityToString(AclObjectIdentity aclObjectIdentity)

  Responsible for covering a `AclObjectIdentity` to a `String` that can be located in the RDBMS.

  Parameters:
    `aclObjectIdentity` - to locate
  Returns:
    the object identity as a `String`

### getAcls

    public BasicAclEntry[] getAcls(AclObjectIdentity aclObjectIdentity)

  Returns the ACLs associated with the requested `AclObjectIdentity`.

  The `BasicAclEntry`s returned by this method will have `String`-based recipients. This will not be a problem if you are using the `GrantedAuthorityEffectiveAclsResolver`, which is the default configured against `BasicAclProvider`.

  This method will only return ACLs for requests where the `AclObjectIdentity` is of type `NamedEntityObjectIdentity`. Of course, you can subclass or replace this class and support your own custom `AclObjectIdentity` types.

  Specified by:
    `getAcls` in interface `BasicAclDao`
  Parameters:
    `aclObjectIdentity` - for which ACL information is required (cannot be `null` and must be an instance of `NamedEntityObjectIdentity`)
  Returns:
    the ACLs that apply (without any `null`s inside the array), or `null` if not found or if an incompatible `AclObjectIdentity` was requested

### getAclsByObjectIdentity

    public MappingSqlQuery getAclsByObjectIdentity()

### getAclsByObjectIdentityQuery

    public String getAclsByObjectIdentityQuery()

### getObjectPropertiesQuery

    public String getObjectPropertiesQuery()

### initDao

    protected void initDao()
                    throws ApplicationContextException

  Overrides:
    `initDao` in class `DaoSupport`
  Throws:
    `ApplicationContextException`

### initMappingSqlQueries

    protected void initMappingSqlQueries()

  Extension point to allow other MappingSqlQuery objects to be substituted in a subclass

### setAclsByObjectIdentity

    public void setAclsByObjectIdentity(MappingSqlQuery aclsByObjectIdentityQuery)

### setAclsByObjectIdentityQuery

    public void setAclsByObjectIdentityQuery(String queryString)

  Allows the default query string used to retrieve ACLs based on object identity to be overriden, if default table or column names need to be changed. The default query is `DEF_ACLS_BY_OBJECT_IDENTITY_QUERY`; when modifying this query, ensure that all returned columns are mapped back to the same column names as in the default query.

  Parameters:
    `queryString` - The query string to set

### setObjectProperties

    public void setObjectProperties(MappingSqlQuery objectPropertiesQuery)

### setObjectPropertiesQuery

    public void setObjectPropertiesQuery(String queryString)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2005 Acegi Technology Pty Limited. All Rights Reserved.