Is the SQL statement used in Spring Security's BasicLookupStrategy correct?
===


While debugging some problems encountered using Spring Security ACL, I looked into the SQL statement used by "BasicLookupStrategy". I am copying it here for reference:

    public final static String DEFAULT_SELECT_CLAUSE = "select acl_object_identity.object_id_identity, "
        + "acl_entry.ace_order,  "
        + "acl_object_identity.id as acl_id, "
        + "acl_object_identity.parent_object, "
        + "acl_object_identity.entries_inheriting, "
        + "acl_entry.id as ace_id, "
        + "acl_entry.mask,  "
        + "acl_entry.granting,  "
        + "acl_entry.audit_success, "
        + "acl_entry.audit_failure,  "
        + "acl_sid.principal as ace_principal, "
        + "acl_sid.sid as ace_sid,  "
        + "acli_sid.principal as acl_principal, "
        + "acli_sid.sid as acl_sid, "
        + "acl_class.class "
        + "from acl_object_identity "
        + "left join acl_sid acli_sid on acli_sid.id = acl_object_identity.owner_sid "
        + "left join acl_class on acl_class.id = acl_object_identity.object_id_class   "
        + "left join acl_entry on acl_object_identity.id = acl_entry.acl_object_identity "
        + "left join acl_sid on acl_entry.sid = acl_sid.id  "
        + "where ( ";

My question is about the usage of the table "acli_sid" in the above statement. AFAICT, Spring security ACL doesn't require any table with that name so I am wondering if there is something I am missing here. Any help is greatly appreciated.

Thanks,
Raghu






