Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-7675

Non authenticated connections on servers with required authentication fail to load anything in Compass

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 1.40.3
    • Component/s: Connectivity
    • None
    • Developer Tools

      When connecting to MongoDB server with no authentication provided to the server that requires it, Compass only shows an error and doesn't load anything:

      If fetching some instance info failed for unexpected reasons, Compass will not proceed with trying to fetch anything else, like databases or collections list, making the application basically unusable.

      We are currently already ignoring "not authorized" errors when fetching instance info, so one of the approaches to deal with this would be to extend the check to ignore "not authenticated" errors in these cases too.

      See Slack thread for more details

      Copy paste of the slack thread of longevity:
       
      Alena Khineika

      hey, in compass in mongosh when connecting with "[mongodb://127.0.0.1:27017/]" to a mongod that requires auth, it lets me in but shows the `Failed to retrieve server info
      MongoServerError: Command hostInfo requires authentication` error. it doesn't seem to be expected, right? is it a known issue? (edited) 
       
      This file was not found.
       
      Sergey Petushkov

      Hmmm, not authorised errors should be ignored when fetching host info
       
      This file was not found.
       
      Sergey Petushkov

       
      export function isNotAuthorized(err: any) { if (!err)

      { return false; }

      const msg = (err as Error).message || JSON.stringify(err); return new RegExp('not (authorized|allowed)').test(msg); }
       
      Alena Khineika

      in mongosh the error is MongoServerError: Command listDatabases requires authentication
       
      Sergey Petushkov

      Doesn't look like our no auth check is covering this (edited) 
       
       
      Sergey Petushkov

      It's either a recent change in server error message that we didn't notice or most probably an old "issue" that was there for awhile already, just no one ever ran into this. Do we want to ignore not authenticated errors when fetching instance info in these cases in Compass?
       
      Alena Khineika

      but what we will see then when logged in? should we pass the connection form in this case or it should be connecting error?
       
      Alena Khineika

      isn't it an unauthorised kind of situation? (edited) 
       
      Sergey Petushkov

      And we already ignore unauthorised, just our error matcher doesn't matches this error
       
      Sergey Petushkov

      Which is slightly different because it's not authenticated, personally I don't think it changes much for the expected Compass behavior
       
      Sergey Petushkov

      Anyway, this is a good catch, definitely not handled at the moment, I opened COMPASS-7675 to track it

            Assignee:
            Unassigned Unassigned
            Reporter:
            sergey.petushkov@mongodb.com Sergey Petushkov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: