2012-07-24 2 views
0

스프링 보안 ACL을 사용하여 몇 가지 문제를 디버깅하는 동안 "BasicLookupStrategy"에서 사용하는 SQL 문을 살펴 보았습니다. 여기에 참조 용으로 복사합니다 :스프링 보안의 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 security ACL은 그 이름을 가진 어떤 테이블도 필요로하지 않으므로 여기에 누락 된 것이 있는지 궁금합니다. 어떤 도움이라도 대단히 감사합니다.

덕분에, 라구

답변

0

표는 acl_sid라고합니다. 당신이 게시 한 SQL 쿼리는 별칭 이름으로 acli_sid를 사용 : 당신은 쉽게 샘플 응용 프로그램을 실행하여 ACL 데이터베이스 스키마를 작동하는지 확인할 수 있습니다

left join acl_sid acli_sid on acli_sid.id 

.

관련 문제