Add web-based logon.

Review Request #12981 — Created May 5, 2023 and submitted — Latest diff uploaded




This adds web-based logon for to RBTools. This allows users of RBTools to
authenticate to the Review Board server via a web browser. This is useful for
users who authenticate to Review Board using SSO or similar methods, and would
like to use those methods to authenticate to RBTools. To do this we spin up a
local server which redirects to Review Board's login page and then receives
an API token from the Review Board server to authenticate with.

  • Ran unit tests.
  • Manually tested the login flow with successful logins and failed logins.
  • Tested logging in again while logged in and logging out
  • Tested with automatically opening a browser (the -o flag).
  • Tested logging in/out with the traditional login flow.
  • Tested exiting the command.
  • Tested running two instances of the web login server at the same time.
    Saw that the servers ran on different ports and was able to complete
    the login flow on both.
  • Tested timing out the web login server.
  • Tested on RB5, RB6 and RB7.
  • Tested using a version that is too old to support web-based login.
  • Tested using a version that have the client_web_login server
    capabilities bug (5.0.5-5.0.7 and 6.0-6.0.2).
  • Tested using RB7 with the capabilities bug fix.