It’s my mail client that changed the quote mark, I didn’t see it, it’s just an 
export of the data I get from DevCenter, the salted hash is not the same as I 
saw in this guide : 
https://support.datastax.com/hc/en-us/articles/207932926-FAQ-How-to-recover-from-a-lost-superuser-password
But it should be correct as it was generated by Cassandra itself yesterday.

The export :
cassandra@cqlsh> SELECT * from system_auth.roles;

 role      | can_login | is_superuser | member_of | salted_hash
-----------+-----------+--------------+-----------+--------------------------------------------------------------
 cassandra |      True |         True |      null | 
$2a$10$7sXeNr3okw61oisR9pCyHeWEO3wPzx3w8r/LKwtDSW2Tt68f4KFmi

> Le 18 juil. 2018 à 12:26, Sam Tunnicliffe <s...@beobal.com> a écrit :
> 
> It may be an artifact of the email client, but that's not a valid INSERT 
> statement - the closing quote on the password hash is U2019 (right side 
> quotation mark) but the opening quote is U0027 (apostrophe) - which is what 
> cqlsh expects. Can you just SELECT * from system_auth.roles and check that 
> the salted_hash is correct?
> 
> On 18 July 2018 at 11:06, Thomas Lété <thomas.l...@soprism.com 
> <mailto:thomas.l...@soprism.com>> wrote:
> Yes it’s the config I’m using and I’m trying to add the Password Auth to :-)
> 
> Here is the content of the roles table :
> 
> INSERT INTO roles (role,can_login,is_superuser,member_of,salted_hash) VALUES 
> ('cassandra',true,true,null,'$2a$10$7sXeNr3okw61oisR9pCyHeWEO3wPzx3w8r/LKwtDSW2Tt68f4KFmi’);
> 
> It seems correct but I’m not able to authenticate (using cqlsh v5.0.1 or 
> DevCenter 1.6.0)
> 
> I’m starting to consider going from scratch and use the default config and 
> check if it works...
> 
>> Le 18 juil. 2018 à 12:03, Sam Tunnicliffe <s...@beobal.com 
>> <mailto:s...@beobal.com>> a écrit :
>> 
>> With that config you'll be using the default AllowAllAuthenticator, so I 
>> assume you are able to connect cqlsh without any credentials? If so, can you 
>> verify the contents of the system_auth.roles table? It should contain only 
>> the cassandra user.
>> 
>> On 18 July 2018 at 08:02, Thomas Lété <thomas.l...@soprism.com 
>> <mailto:thomas.l...@soprism.com>> wrote:
>> I’m using the default ones, the commented parts are the one I use when I try 
>> the PasswordAuthenticator :) (line 19 to 24)
>> 
>> > Le 18 juil. 2018 à 08:51, Horia Mocioi <horia.moc...@ericsson.com 
>> > <mailto:horia.moc...@ericsson.com>> a écrit :
>> > 
>> > If this is the file that you are currently using...he first things that
>> > I see is that you do not have any authenticator and role_manager:
>> > 
>> > https://github.com/apache/cassandra/blob/1d506f9d09c880ff2b2693e3e27fa5 
>> > <https://github.com/apache/cassandra/blob/1d506f9d09c880ff2b2693e3e27fa5>
>> > 8c02ecf398/conf/cassandra.yaml#L103
>> > 
>> > https://github.com/apache/cassandra/blob/1d506f9d09c880ff2b2693e3e27fa5 
>> > <https://github.com/apache/cassandra/blob/1d506f9d09c880ff2b2693e3e27fa5>
>> > 8c02ecf398/conf/cassandra.yaml#L123
>> > 
>> > On ons, 2018-07-18 at 08:33 +0200, Thomas Lété wrote:
>> >> Unfortunately, I’m not a java dev so I’m not able to create an
>> >> authenticator…
>> >> 
>> >> I don’t like to do that usually but I share with you a gist of the
>> >> config, it was generated by OpsCenter when it was free, I just
>> >> updated it for Cassandra >= 3… Maybe you will see something :
>> >> 
>> >> https://gist.github.com/bistory/ececc0bef7627f39a21e4e8f0c8d841c 
>> >> <https://gist.github.com/bistory/ececc0bef7627f39a21e4e8f0c8d841c>
>> >> 
>> >>> Le 18 juil. 2018 à 00:28, Horia Mocioi <horia.moc...@ericsson.com 
>> >>> <mailto:horia.moc...@ericsson.com>>
>> >>> a écrit :
>> >>> 
>> >>> Cassandra allows to use custom authenticators so I would create a
>> >>> CustomPasswordAuthenticator. This would be a copy of the existing
>> >>> PasswordAuthenticator. I would add several debugging info like:
>> >>> provided username and password, the output of the checkpw function,
>> >>> what cql statement is executed etc (any other info that would help
>> >>> me to understand what is being executed in the authenticator).
>> >>> From: Thomas Lété <thomas.l...@soprism.com 
>> >>> <mailto:thomas.l...@soprism.com>>
>> >>> Sent: Tuesday, July 17, 2018 5:24:39 PM
>> >>> To: user@cassandra.apache.org <mailto:user@cassandra.apache.org>
>> >>> Subject: Re: System auth empty, how to populate it
>> >>>  
>> >>> Thanks for your reply,
>> >>> 
>> >>> - I have not defined role_manager in the config
>> >>> - I dropped the users table, it was present in the keyspace
>> >>> - Cassandra then created a record in the roles table, yay !
>> >>> 
>> >>> But when I do clash -u cassandra -p cassandra
>> >>> 
>> >>> => Invalid credentials supplied.
>> >>> Authentication error on host xxxxxx: Provided username cassandra
>> >>> and/or password are incorrect
>> >>> 
>> >>> I already repaired system_auth a few times, nothing help...
>> >>> 
>> >>>> Le 17 juil. 2018 à 16:47, Sam Tunnicliffe <s...@beobal.com 
>> >>>> <mailto:s...@beobal.com>> a
>> >>>> écrit :
>> >>>> 
>> >>>> The default superuser is only created at startup if 3 conditions
>> >>>> are met:
>> >>>> 
>> >>>> i) The default role manager is configured. In cassandra.yaml, you
>> >>>> should see "role_manager: CassandraRoleManager". This is also the
>> >>>> default value, so unless you're explicitly using a custom role
>> >>>> manager it should be good. 
>> >>>> ii) The system_auth.users table (legacy, pre-2.2) should not be
>> >>>> present. Present means present in the schema, not on disk. Unlike
>> >>>> most system tables, this table is droppable (in fact this is a
>> >>>> necessary step in upgrading from earlier versions).  
>> >>>> iii) There should be no preexisting roles present in the
>> >>>> system_auth.roles table. This is verified with a regular query,
>> >>>> so you must either use CQL to delete existing roles, or remove
>> >>>> the data directories and commit logs on *all* nodes.
>> >>>> 
>> >>>> Even if these three conditions are met, but the default user
>> >>>> isn't being created the manual insert that Horia suggested should
>> >>>> work. If system_auth.roles table exists and you are able to
>> >>>> perform the insert, I'm very surprised when you say it's empty
>> >>>> after you issue the insert. If you check again and it turns out
>> >>>> the manual insert is working as expected, you need to make sure
>> >>>> that the legacy tables have been dropped from schema (assuming
>> >>>> you upgraded from a pre-3.0 version at some point). If the legacy
>> >>>> tables are still present, the authenticator will continue to read
>> >>>> from them and so would be ignoring the new entry in the roles
>> >>>> table. (see: https://github.com/apache/cassandra/blob/cassandra-3 
>> >>>> <https://github.com/apache/cassandra/blob/cassandra-3>
>> >>>> .11.2/NEWS.txt#L619-L640) 
>> >>>> 
>> >>>> 
>> >>>> On 17 July 2018 at 15:18, Thomas Lété <thomas.l...@soprism.com 
>> >>>> <mailto:thomas.l...@soprism.com>> w
>> >>>> rote:
>> >>>> Yes I did that multiple time, always following the same procedure
>> >>>> : stop Cassandra, on all nodes, remove data, update config then
>> >>>> restart nodes one by one…
>> >>>> 
>> >>>> I really don’t understand when I could have done wrong...
>> >>>> 
>> >>>>> Le 17 juil. 2018 à 16:15, Simon Fontana Oscarsson <simon.fontan
>> >>>> a.oscars...@ericsson.com <mailto:a.oscars...@ericsson.com>> a écrit :
>> >>>>>  
>> >>>>> This is very strange behavior if Cassandra won't recreate the
>> >>>> cassandra user when you delete the folder.
>> >>>>> So just to make sure, you are stopping Cassandra on all nodes
>> >>>> and deleting the data directory?
>> >>>>>  
>> >>>>> -- 
>> >>>>> SIMON FONTANA OSCARSSON
>> >>>>> Software Developer
>> >>>>>  
>> >>>>> Ericsson
>> >>>>> Ölandsgatan 1 
>> >>>>> <https://maps.google.com/?q=%C3%96landsgatan+1+%0D%0A+37133+Karlskrona,+Sweden&entry=gmail&source=g>
>> >>>>> 37133 Karlskrona, Sweden 
>> >>>>> <https://maps.google.com/?q=%C3%96landsgatan+1+%0D%0A+37133+Karlskrona,+Sweden&entry=gmail&source=g>
>> >>>>>  simon.fontana.oscars...@ericsson.com 
>> >>>>> <mailto:simon.fontana.oscars...@ericsson.com>
>> >>>>>  www.ericsson.com <http://www.ericsson.com/>
>> >>>>>  
>> >>>>> On tis, 2018-07-17 at 16:01 +0200, Thomas Lété wrote:
>> >>>>>> It’s empty...
>> >>>>>>  
>> >>>>>>>  
>> >>>>>>> Le 17 juil. 2018 à 15:59, Horia Mocioi <horia.mocioi@ericsson
>> >>>> .com> a écrit :
>> >>>>>>>  
>> >>>>>>> Could you also send the output of "select * from
>> >>>> system_auth.roles"?
>> >>>>>>> (you will need to change authenticator to
>> >>>> AllowAllAuthenticator and
>> >>>>>>> authorizer to AllowAllAuthorizer) 
>> >>>>>>>  
>> >>>>>>> On tis, 2018-07-17 at 15:43 +0200, Thomas Lété wrote:
>> >>>>>>>>  
>> >>>>>>>> Ok I tried that, nothing better (I already tried dropping
>> >>>> the entire
>> >>>>>>>> system_auth folder that way, same result)
>> >>>>>>>>  
>> >>>>>>>> When I open the log, I found nothing about « Password » and
>> >>>> when I
>> >>>>>>>> search for « roles », I only find that :
>> >>>>>>>>  
>> >>>>>>>> DEBUG [main] 2018-07-17 15:37:39,420
>> >>>>>>>> CompactionStrategyManager.java:380 - Recreating compaction
>> >>>> strategy -
>> >>>>>>>> disk boundaries are out of date for system_auth.roles.
>> >>>>>>>> DEBUG [main] 2018-07-17 15:37:39,420
>> >>>> DiskBoundaryManager.java:53 -
>> >>>>>>>> Refreshing disk boundary cache for system_auth.roles
>> >>>>>>>> DEBUG [main] 2018-07-17 15:37:39,422
>> >>>> DiskBoundaryManager.java:56 -
>> >>>>>>>> Updating boundaries from
>> >>>>>>>> 
>> >>>> DiskBoundaries{directories=[DataDirectory{location=/home/cassandr
>> >>>> a/da
>> >>>>>>>> ta}], positions=[max(9223372036854775807)], ringVersion=3,
>> >>>>>>>> directoriesVersion=0} to
>> >>>>>>>> 
>> >>>> DiskBoundaries{directories=[DataDirectory{location=/home/cassandr
>> >>>> a/da
>> >>>>>>>> ta}], positions=[max(9223372036854775807)], ringVersion=16,
>> >>>>>>>> directoriesVersion=0} for system_auth.roles
>> >>>>>>>>  
>> >>>>>>>> The configuration I use for Auth is the following :
>> >>>>>>>>  
>> >>>>>>>> authorizer: CassandraAuthorizer
>> >>>>>>>> permissions_validity_in_ms: 2000
>> >>>>>>>> permissions_update_interval_in_ms: 2000
>> >>>>>>>> authenticator: PasswordAuthenticator
>> >>>>>>>> credentials_validity_in_ms: 2000
>> >>>>>>>> credentials_update_interval_in_ms: 2000
>> >>>>>>>>  
>> >>>>>>>>>  
>> >>>>>>>>> Le 17 juil. 2018 à 15:26, Simon Fontana Oscarsson
>> >>>> <simon.fontana.os
>> >>>>>>>>>  cars...@ericsson.com <mailto:cars...@ericsson.com>> a écrit :
>> >>>>>>>>>  
>> >>>>>>>>> Could you try the following steps?
>> >>>>>>>>>  
>> >>>>>>>>> Stop Cassandra.
>> >>>>>>>>> Change authenticator in yaml to PasswordAuthenticator if
>> >>>> not
>> >>>>>>>>> already done.
>> >>>>>>>>> Remove data directory with `rm -rf data/system_auth/roles-
>> >>>> *`
>> >>>>>>>>> Start Cassandra.
>> >>>>>>>>> Login with `cqlsh -u cassandra -p cassandra`
>> >>>>>>>>>  
>> >>>>>>>>> Works for me.
>> >>>> 
>> >>>> 
>> >>>> ---------------------------------------------------------------
>> >>>> ------
>> >>>> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org 
>> >>>> <mailto:user-unsubscr...@cassandra.apache.org>
>> >>>> For additional commands, e-mail: user-h...@cassandra.apache.org 
>> >>>> <mailto:user-h...@cassandra.apache.org>
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org 
>> > <mailto:user-unsubscr...@cassandra.apache.org>
>> > For additional commands, e-mail: user-h...@cassandra.apache.org 
>> > <mailto:user-h...@cassandra.apache.org>
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org 
>> <mailto:user-unsubscr...@cassandra.apache.org>
>> For additional commands, e-mail: user-h...@cassandra.apache.org 
>> <mailto:user-h...@cassandra.apache.org>
>> 
>> 
> 
> 

Reply via email to