From 341611095a884f9222326af6207e838888b5764d Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Tue, 24 Jan 2012 10:14:49 -0600 Subject: [PATCH] disallow user modification of System keyspace patch by Dave Brosius; reviewed by jbellis for CASSANDRA-3759 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/ClientState.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 73a0f770b8..a1055586e6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 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 diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index 5ecd02bdcc..923c780321 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -123,6 +123,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 perms = DatabaseDescriptor.getAuthority().authorize(user, resource);