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

Stefan Miklosovic commented on CASSANDRA-19498:
-----------------------------------------------

It is loaded here 
https://github.com/apache/cassandra/blob/c9625e0102dab66f41d3ef2338c54d499e73a8c5/pylib/cqlshlib/cqlshmain.py#L2338-L2342
 

btw we should probably do this to clean it up a little bit: 
https://github.com/smiklosovic/cassandra/commit/9bf43e3982377bfa3f6f4021650700a863c88dce

If we closely check what is going on there, that whole method it is in 
(read_options) just reads them and then in the main method it will use it for 
"auth_provider" parameter in Shell. But since credentials are not null, it will 
read it from there instead of these options where it would be set wrong ... If 
we do not have credentials file, then it will default to one in cqlshrc. So it 
works, but in fact we break it in read_options but it does not matter because 
cred file is used after that anyway ... .

> Error reading data from credential file
> ---------------------------------------
>
>                 Key: CASSANDRA-19498
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19498
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Documentation, Tool/cqlsh
>            Reporter: Slava
>            Priority: Normal
>             Fix For: 4.1.x, 5.0.x, 5.x
>
>
> The pylib/cqlshlib/cqlshmain.py code reads data from the credentials file, 
> however, it is immediately ignored.
> https://github.com/apache/cassandra/blob/c9625e0102dab66f41d3ef2338c54d499e73a8c5/pylib/cqlshlib/cqlshmain.py#L2070
> {code:java}
>     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{code}
> 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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to