Hi Aaron, Thank a lot for your help.
I have still some questions to get clarified.. The issue happens in the following scenario. 1) Call add keyspace from a client API -The keyspace given by the client is modified and used for further operations. e.g Client's keysace = 'foo' and the his domain name = 'bar.com' => modified keyspace = 'bar.com_foo' 2) Call add column family from a a client API Client's keyspace = 'foo' ...now prior to calling 'login', 'set_keyspace' is called. Within that method, the following method is called. This throws an error because the keyspace Cassadara kept is 'bar.com_foo' not 'foo' public static void validateTable(String tablename) throws KeyspaceNotDefinedException { if (!DatabaseDescriptor.getTables().contains(tablename)) { throw new KeyspaceNotDefinedException("Keyspace " + tablename + " does not exist"); } } Thanks, Indika On Mon, Jan 31, 2011 at 1:58 AM, Aaron Morton <aa...@thelastpickle.com>wrote: > AFAIK The order of calling login() and set_keyspace() is not important. > > set_keyspace() just stores the keyspace in the ClientState on the > connection thread, and login authenticates the user name and password and > stores them in the ClientState. Functions on CassandraServer that require > authorisation call functions such as ClientState.hasColumnFamilyAccess() > where things are checked. > > If you wanted to set the keyspace based on the login, you could do it in > the login() function on the ClientState. Then your client would not need to > call set_keyspace() . The keyspace has to exist though, it's used it lots of > places to identify the CF > > Hope that helps. > Aaron > > > On 31 Jan, 2011,at 07:18 AM, indika kumara <indika.k...@gmail.com> wrote: > > This issue came when I was trying to implement an idea listed at [ > http://wiki.apache.org/cassandra/MultiTenant] – Namespaces. I thought the > namespace can be the tenant’s domain name provided though username (e.g. > f...@bar.com) or can be returned through authentication backend on login. > For both cases, calling ‘login’ prior to ‘set_keyspace’ is required. > > The ‘CassandraServer.java’’s ‘set_keyspace()’ checks the availability of a > given keyspace. Here, prior to pass the keyspace, it has to be modified. > Any solutions? I would like to create a JIRA for the idea with a working > patch. > > Highly appreciate the suggestions for implementing the aforementioned idea > listed in the wiki. > > Thanks, > > Indika > > On Sun, Jan 30, 2011 at 10:21 PM, indika kumara <ind...@apache.org> wrote: > >> Hi All, >> >> I observed the behavior indicated in the subject of this email even the >> ‘default User’ returned from authentication is null. Is this correct? >> >> Thanks, >> >> Indika >> > >