주요 인터페이스들은 org.acegisecurity.acls 패키지에서
찾아볼 수 있으며, 다음과 같은 것들이 있다:
Acl: 모든 도메인 객체는 오직 하나의
Acl 객체를 가지며,
내부적으로 Acl의 소유자을 알고 있을 뿐만 아니라
AccessControlEntry도 포함하고 있다.
Acl은 직접적으로 도메인 객체를 참조하지는 않으며, 그 대신
ObjectIdentity를 참조한다.
AccessControlEntry:
Acl은 여러 개의 AccessControlEntry를 가지며,
AccessControlEntry는 종종 프레임워크상에서 ACE로 축약되곤 한다.
각 ACE는 특정한 Permission과 Sid, 그리고
Acl의 튜플을 참조한다. 또한 ACE는 허가되거나
허가되지 않을 수도 있으며 감사 설정을 포함할 수도 있다.
Permission:
퍼미션은 불변적인 특정 비트 마스크(bit mask)를 나타내며,
그리고 정보를 출력하고 비트 마스킹을 수행하는데 사용되는 편의 함수들을 제공한다.
Sid:
ACL 모듈은 신원주체와 GrantedAuthority[]를 참조할 필요가 있다.
인디렉션의 수준(a level of indirection)이 Sid 인터페이스에 의해
제공된다. 공통 클래스들은
PrincipalSid(Authentication 객체내의
신원주체를 나타내는)와 GrantedAuthoritySid를 포함한다.
ObjectIdentity:
ObjectIdentity는 각 도메인 객체를 ACL 모듈 내에서
내부적으로 표현한다.
AclService: 주어진 ObjectIdentity에 적용가능한
Acl을 검색한다.
MutableAclService:
변경된 Acl이 영속화를 나타내도록 한다.
원치 않을 경우 굳이 이 인터페이스를 사용할 필요는 없다.
ACL 모듈은 원래의 ACL 모듈을 실제로 사용하는 사용자 커뮤니티에서 보내온 수많은 피드백에 기초하고 있다. 이러한 피드백들은 ACL 모듈에서 상당히 강화된 성능(특히 데이터베이스 검색에 있어), 두드러지게 개선된 캡슐화, 높은 응집도, 그리고 강화된 커스터마이즈 지점을 제공할 수 있도록 리아키텍처링(rearchitecture)되도록 만들어 주었다.
Acegi Security 1.0.3에 들어있는 연락처 예제는 새로운 ACL 모듈에 대한 데모를 제공하고 있다. 기존 모듈로부터 연락처를 새로운 모듈로 전환하는 것은 상대적으로 간단했으며, 그리고 기존 ACL 모듈의 사용자들은 애플리케이션이 상대적으로 더 적은 작업을 통해 변경될 수 있다는 것을 알게 될 것이다.
우리는 차기 릴리즈에서 새로운 ACL 모듈에 대해 좀 더 상세하게 문서를 작성할 것이다. 새로운 ACL 모듈은 미리보기로서만 간주되어야 한다는 것을 알아두길 바라며 (예를 들어 적절한 선행 테스트 없이는 제품에 사용하지 않도록 한다), 그리고 최종판이 될 때 1.0.3과 1.1.0 사이에는 사소한 변경사항이 있을 것이다. 그럼에도 불구하고 호환성에 영향을 미치는 변경들은 전혀 가망없어 보이는데, 이미 기존 ACL 모듈의 사용자들로부터 몇 년에 걸친 피드백에 기초하고 있는 모듈들이 특히 그러하다.