You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2013/01/11 17:39:19 UTC
git commit: Fix CQL3 BATCH authorization caching
Updated Branches:
refs/heads/cassandra-1.1 ccdb632d4 -> 3bb84e9e2
Fix CQL3 BATCH authorization caching
patch by Aleksey Yeschenko; reviewed by Sylvain Lebresne for CASSANDRA-5145
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3bb84e9e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3bb84e9e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3bb84e9e
Branch: refs/heads/cassandra-1.1
Commit: 3bb84e9e2acd351c44d438acff2abeaedc00d506
Parents: ccdb632
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Fri Jan 11 19:36:44 2013 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Fri Jan 11 19:36:44 2013 +0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/cql3/statements/BatchStatement.java | 17 ++++++++++----
2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3bb84e9e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 58dbc7b..9712791 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,7 @@
* Pig: correctly decode row keys in widerow mode (CASSANDRA-5098)
* nodetool repair command now prints progress (CASSANDRA-4767)
* fix user defined compaction to run against 1.1 data directory (CASSANDRA-5118)
+ * Fix CQL3 BATCH authorization caching (CASSANDRA-5145)
1.1.8
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3bb84e9e/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
index 2241b05..e0137a8 100644
--- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
@@ -65,14 +65,21 @@ public class BatchStatement extends ModificationStatement
@Override
public void checkAccess(ClientState state) throws InvalidRequestException
{
- Set<String> cfamsSeen = new HashSet<String>();
+ Map<String, Set<String>> cfamsSeen = new HashMap<String, Set<String>>();
for (ModificationStatement statement : statements)
{
- // Avoid unnecessary authorizations.
- if (!(cfamsSeen.contains(statement.columnFamily())))
+ String ks = statement.keyspace();
+ String cf = statement.columnFamily();
+
+ if (!cfamsSeen.containsKey(ks))
+ cfamsSeen.put(ks, new HashSet<String>());
+
+ // Avoid unnecessary authorization.
+ Set<String> cfs = cfamsSeen.get(ks);
+ if (!(cfs.contains(cf)))
{
- state.hasColumnFamilyAccess(statement.keyspace(), statement.columnFamily(), Permission.WRITE);
- cfamsSeen.add(statement.columnFamily());
+ state.hasColumnFamilyAccess(ks, cf, Permission.WRITE);
+ cfs.add(cf);
}
}
}