[ 
https://issues.apache.org/jira/browse/CASSANDRA-7653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14269884#comment-14269884
 ] 

Aleksey Yeschenko commented on CASSANDRA-7653:
----------------------------------------------

Okay. Mostly LGTM. Final notes and nits:

AuthResponse
- in execute(), `authenticator` variable should be renamed to `negotiator`

ServerConnection
- saslAutneticator field and getAuthenticator() method should be renamed for 
consistency (to saslNegotiator/getSaslNegotiator())

ClientState
- preventSystemKSSchemaModification() should move allowAlter/allowDrop to the 
class level statics ALTERABLE_KEYSPACES/DROPPABLE_TABLES vs. allocating them 
every time

ListPermissionsStatement
- resultset structure is part of the public API. Can’t just rename  ‘username’ 
to ‘role’. Should keep (but deprecate) username, and add ‘role’, as another 
column, with duplicate value

Cql.g
- now would be a good time to correct the initial design mistake and make role 
names/user names strings, instead of identifiers

PermissionsCacheMBean
- nobody’s using this functionality (the previous mbean wasn’t registered), so 
we can drop it until someone actually requests it

IAuthorizer
- grant()/revoke() should rename to/from arguments to grantee/revokee in 
consistency with IRoleManager naming
- grant()/revoke() should have an AuthenticatedUser performer arg, like 
IAuthorizer does (or both should drop it)

CassandraAuthorizer
- revokeAll() should use a logged batch for updating permissions+index tables

DataResource:
- should rename isColumnFamilyLevel() to isTableLevel(), while we are breaking 
the API anyway (and getColumnFamily() to getTable()). Not something touched by 
the patch, but can sneak it in here.

> Add role based access control to Cassandra
> ------------------------------------------
>
>                 Key: CASSANDRA-7653
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7653
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Mike Adamson
>            Assignee: Sam Tunnicliffe
>             Fix For: 3.0
>
>         Attachments: 7653.patch, CQLSmokeTest.java, cql_smoke_test.py
>
>
> The current authentication model supports granting permissions to individual 
> users. While this is OK for small or medium organizations wanting to 
> implement authorization, it does not work well in large organizations because 
> of the overhead of having to maintain the permissions for each user.
> Introducing roles into the authentication model would allow sets of 
> permissions to be controlled in one place as a role and then the role granted 
> to users. Roles should also be able to be granted to other roles to allow 
> hierarchical sets of permissions to be built up.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to