Updated Branches: refs/heads/trunk dc7db0451 -> f6edaa855
disallow user modification of System keyspace patch by Dave Brosius; reviewed by jbellis for CASSANDRA-3759 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f6edaa85 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f6edaa85 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f6edaa85 Branch: refs/heads/trunk Commit: f6edaa8555307dc94c905e5627e79c97d06b254e Parents: dc7db04 Author: Jonathan Ellis <[email protected]> Authored: Tue Jan 24 10:14:49 2012 -0600 Committer: Jonathan Ellis <[email protected]> Committed: Tue Jan 24 10:16:05 2012 -0600 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/service/ClientState.java | 4 ++++ 2 files changed, 5 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f6edaa85/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index ef21d65..3e5af50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -53,6 +53,7 @@ 1.0.8 + * disallow user modification of System keyspace (CASSANDRA-3738) * allow using sstable2json on secondary index data (CASSANDRA-3738) * (cqlsh) add DESCRIBE COLUMNFAMILIES (CASSANDRA-3586) * (cqlsh) format blobs correctly and use colors to improve output http://git-wip-us.apache.org/repos/asf/cassandra/blob/f6edaa85/src/java/org/apache/cassandra/service/ClientState.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index ca34be9..3c021b0 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -140,6 +140,10 @@ public class ClientState { validateLogin(); + // hardcode disallowing messing with system keyspace + if (keyspace.equalsIgnoreCase(Table.SYSTEM_TABLE) && perm == Permission.WRITE) + throw new InvalidRequestException("system keyspace is not user-modifiable"); + resourceClear(); Set<Permission> perms = DatabaseDescriptor.getAuthority().authorize(user, resource);
