2012-07-24 85 views
0

在调试使用Spring Security ACL遇到的一些问题时,我查看了“BasicLookupStrategy”使用的SQL语句。我在这里复制它以供参考:Spring Security的BasicLookupStrategy中使用的SQL语句是否正确?

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 ("; 

我的问题是关于上述语句中“acli_sid”表的用法。 AFAICT,Spring安全ACL不需要任何具有该名称的表,所以我想知道是否有我在这里失踪的东西。任何帮助是极大的赞赏。

感谢, Raghu

回答

0

的表称为acl_sid。您发布的SQL查询使用acli_sid作为一个别名:

left join acl_sid acli_sid on acli_sid.id 

您可以轻松地检查其运行示例应用程序与ACL数据库架构的工作原理。