Skip to content

Commit e416e6f

Browse files
committed
Improve ACL implementation
Take advantage of eager fetching and second-level cache for ACLs Avoid querying the database in AclDao, models are already eagerly fetched, so querying is pointless. Remove ACL cache, ACLs are already stored in the second-level cache. Use Spring-supplied ACL implementation
1 parent d68d33a commit e416e6f

File tree

11 files changed

+422
-825
lines changed

11 files changed

+422
-825
lines changed

gsec/src/main/java/gemma/gsec/acl/domain/AclDao.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@
1515
package gemma.gsec.acl.domain;
1616

1717
import org.springframework.security.acls.jdbc.LookupStrategy;
18-
import org.springframework.security.acls.model.MutableAcl;
19-
import org.springframework.security.acls.model.ObjectIdentity;
20-
import org.springframework.security.acls.model.Sid;
18+
import org.springframework.security.acls.model.Acl;
2119

20+
import javax.annotation.CheckReturnValue;
2221
import javax.annotation.Nullable;
23-
import java.io.Serializable;
2422
import java.util.List;
2523

2624
/**
@@ -29,22 +27,32 @@
2927
*/
3028
public interface AclDao extends LookupStrategy {
3129

32-
AclObjectIdentity createObjectIdentity( String type, Serializable identifier, Sid sid, boolean entriesInheriting );
30+
/**
31+
* Find an ACL object identity confirming to the given object identity.
32+
*/
33+
@Nullable
34+
AclObjectIdentity findObjectIdentity( AclObjectIdentity objectIdentity );
3335

34-
void delete( ObjectIdentity objectIdentity, boolean deleteChildren );
36+
List<AclObjectIdentity> findChildren( AclObjectIdentity parentIdentity );
3537

36-
void delete( Sid sid );
38+
/**
39+
* Create a new object identity.
40+
*/
41+
@CheckReturnValue
42+
AclObjectIdentity createObjectIdentity( AclObjectIdentity oid );
3743

38-
@Nullable
39-
AclObjectIdentity find( ObjectIdentity oid );
44+
/**
45+
* Update a given object identity so that it conforms to a given ACL object.
46+
*/
47+
void updateObjectIdentity( AclObjectIdentity aclObjectIdentity, Acl acl );
4048

41-
@Nullable
42-
AclSid find( Sid sid );
49+
void deleteObjectIdentity( AclObjectIdentity objectIdentity, boolean deleteChildren );
4350

44-
List<ObjectIdentity> findChildren( ObjectIdentity parentIdentity );
51+
void deleteSid( AclSid sid );
4552

46-
AclSid findOrCreate( Sid sid );
47-
48-
void update( MutableAcl acl );
53+
@Nullable
54+
AclSid findSid( AclSid sid );
4955

56+
@CheckReturnValue
57+
AclSid findOrCreateSid( AclSid sid );
5058
}

0 commit comments

Comments
 (0)