Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-19498

support legacy [plain_text_auth] section in credentials file removed unintentionally

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      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

          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.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            smiklosovic Stefan Miklosovic Assign to me
            slavavrn Slava
            Stefan Miklosovic
            Brad Schoening, Stefan Miklosovic
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h
                1h

                Slack

                  Issue deployment