Oh man you just saved me ^^

I missed your link, I had just removed the users table, not the others… Now 
they are gone and the password auth is working great !

Thanks a lot everyone for your help !!! :-)

> Le 18 juil. 2018 à 13:33, Sam Tunnicliffe <s...@beobal.com> a écrit :
> 
> The salted hash being different is fine, the bcrypt library generates a 
> random 128 bit salt when encrypting a new password. The salt is then encoded 
> in the hashed string so you'd expect a different salted_hash each time a 
> given plaintext string is encoded.
> 
> I inserted exactly that data into a clean system, then switched it to use 
> PasswordAuthenticator and I can login using the default credentials without 
> any issue. Did you also drop the legacy credentials table 
> (system_auth.credentials) as per the upgrade docs that I linked yesterday (in 
> NEWS.txt)? If you didn't, the authenticator will continue to read from the 
> old table (you don't need a restart after dropping, the switch will happen 
> immediately).
> 
> 
> 
> On 18 July 2018 at 12:12, Thomas Lété <thomas.l...@soprism.com 
> <mailto:thomas.l...@soprism.com>> wrote:
> 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
>  
> <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 
>> <mailto: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