@Override public void grantUser(UserSession currentSession, String object, String userName, AccessMode mode) throws JasDBStorageException { authorize(currentSession, "/Grants", AccessMode.WRITE); try { GrantMetadataProvider grantMetadataProvider = getGrantProvider(); if(grantMetadataProvider.hasGrant(object)) { GrantObject grantObject = getMutableGrantObject(currentSession, object); grantObject.addGrant(new GrantMeta(userName, mode)); grantMetadataProvider.persistGrant(encryptGrants(grantObject, currentSession)); } else { GrantObject grantObject = new GrantObjectMeta(object, new GrantMeta(userName, mode)); grantMetadataProvider.persistGrant(encryptGrants(grantObject, currentSession)); } } finally { cachedGrants.remove(object); } }