Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Code - Bug - Unclear Impact
-
Normal
-
Normal
-
User Report
-
All
-
None
-
Description
The pylib/cqlshlib/cqlshmain.py code reads data from the credentials file, however, it is immediately ignored.
if not options.username: credentials = configparser.ConfigParser() if options.credentials is not None: credentials.read(options.credentials) # use the username from credentials file but fallback to cqlshrc if username is absent from the command line parameters options.username = username_from_cqlshrc if not options.password: rawcredentials = configparser.RawConfigParser() if options.credentials is not None: rawcredentials.read(options.credentials) # handling password in the same way as username, priority cli > credentials > cqlshrc options.password = option_with_default(rawcredentials.get, 'plain_text_auth', 'password', password_from_cqlshrc) options.password = password_from_cqlshrc
These corrections have been made in accordance with https://issues.apache.org/jira/browse/CASSANDRA-16983 and https://issues.apache.org/jira/browse/CASSANDRA-16456.
The documentation does not indicate that AuthProviders can be used in the cqlshrc and credentials files.
I propose to return the ability to use the legacy option of specifying the user and password in the credentials file in the [plain_text_auth] section.
It is also required to describe the rules for using the credentials file in the documentation.
I can make a corresponding pull request.
EDIT by Stefan Miklosovic:
specifying username and password in credentials file works, it is just that [plain_text_auth] section does not work in credentials file anymore. This was working with CASSANDRA-16983 but it stopped to work by CASSANDRA-16456. Both tickets were firstly introduced in 4.1.0 (for the public). I do not think that it was ever an intention to stop to support that when CASSANDRA-16456 was merged and it was most probably just overlooked.