acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
public MutableAcl updateAcl(MutableAcl acl) throws NotFoundException {
		Assert.notNull(acl.getId(), "Object Identity doesn't provide an identifier");

		// Delete this ACL's ACEs in the acl_entry table
		deleteEntries(retrieveObjectIdentityPrimaryKey(acl.getObjectIdentity()));

		// Create this ACL's ACEs in the acl_entry table
		createEntries(acl);

		// Change the mutable columns in acl_object_identity
		updateObjectIdentity(acl);

		// Clear the cache, including children
		clearCacheIncludingChildren(acl.getObjectIdentity());

		// Retrieve the ACL via superclass (ensures cache registration, proper retrieval
		// etc)
		return (MutableAcl) super.readAclById(acl.getObjectIdentity());
	}
public MutableAcl updateAcl(MutableAcl acl) throws NotFoundException {
		Assert.notNull(acl.getId(), "Object Identity doesn't provide an identifier");

		// Delete this ACL's ACEs in the acl_entry table
		deleteEntries(retrieveObjectIdentityPrimaryKey(acl.getObjectIdentity()));

		// Create this ACL's ACEs in the acl_entry table
		createEntries(acl);

		// Change the mutable columns in acl_object_identity
		updateObjectIdentity(acl);

		// Clear the cache, including children
		clearCacheIncludingChildren(acl.getObjectIdentity());

		// Retrieve the ACL via superclass (ensures cache registration, proper retrieval
		// etc)
		return (MutableAcl) super.readAclById(acl.getObjectIdentity());
	}
public MutableAcl updateAcl ( MutableAcl acl ) throws NotFoundException { Assert . notNull ( acl . getId ( ) , "Object Identity doesn't provide an identifier" ) ; // Delete this ACL's ACEs in the acl_entry table deleteEntries ( retrieveObjectIdentityPrimaryKey ( acl . getObjectIdentity ( ) ) ) ; // Create this ACL's ACEs in the acl_entry table createEntries ( acl ) ; // Change the mutable columns in acl_object_identity updateObjectIdentity ( acl ) ; // Clear the cache, including children clearCacheIncludingChildren ( acl . getObjectIdentity ( ) ) ; // Retrieve the ACL via superclass (ensures cache registration, proper retrieval // etc) return ( MutableAcl ) super . readAclById ( acl . getObjectIdentity ( ) ) ; }
This implementation will simply delete all ACEs in the database and recreate them
on each invocation of this method. A more comprehensive implementation might use
dirty state checking, or more likely use ORM capabilities for create, update and
delete operations of {@link MutableAcl}.
This implementation will simply delete all ACEs in the database and recreate them on each invocation of this method . A more comprehensive implementation might use dirty state checking or more likely use ORM capabilities for create update and delete operations of {