2010-05-16 4 views
2

웹 기반 문서 관리 시스템을 구현 중이며 시스템에 ACL을 구현하고 싶습니다. 내 공식 요구 사항은 계층 적 권한 (문서는 폴더에서 권한을 상속 받음) 사용자 그룹 (사용자는 동적으로 그룹을 만들고 사용자를 그룹과 연결할 수 있음)입니다. 이러한 그룹은 시스템의 개체에 대한 사용 권한을 가질 수 있습니다.Java에서 좋은 ACL 구현

이가지 경우에 개체에 대한 권한을 조회합니다 내 코드 :

후자의 요구 사항은 스프링 시큐리티 ACL의 약점을 보인다 조작이 가능한 모든 문서를 나열하는 하나의 문서 2. 조작 1. (자신의 방법은 내가 관리하는 각 문서에 대해 여러 개의 DB 히트가 발생할 가능성이 있음)

다른 ACL 구현을 아는 사람이 있습니까?

감사합니다.

답변

2

저는 스프링 시큐리티의 ACL에 익숙하지 않지만 전형적인 ACL에서는 주어진 노드에 해당 주체에 해당 권한이 있는지 알아보기 위해 각 노드에 접근해야한다고 생각합니다. 당신이 제시하고있는 각 노드에서 매번 canRead() 또는 canAccess() 호출 (또는 이와 유사한)을 만들지 않고 그 문제를 해결할 방법을 찾고 있는지는 모르겠습니다.

제쳐두고 : 전체 문서 관리 시스템 구현을 롤링하는 대신 JSR-170 규격 (Java Content Repository 또는 'JCR')을 사용하여 평가 한 적이 있습니까? 잠재적으로, 당신은 백엔드를 위해 JCR에있는 것들을 사용할 수 있으며, 그 위에 웹 인터페이스를 작성하기 만하면됩니다. Jackrabbit은 기본 ACL 구현만으로 충분합니다.