neo4j / neo4j-browser

Neo4j Browser is the general purpose user interface for working with Neo4j. Query, visualize, administrate and monitor the database.
https://neo4j.com
GNU General Public License v3.0
671 stars 345 forks source link

Ensure sso access token is always refreshed on expiry #1933

Closed OskarDamkjaer closed 11 months ago

OskarDamkjaer commented 11 months ago

Make sure we catch throw connectivity errors from background calls and add a fallback to refresh the accesstoken in the reconnection flow.

I also add end to end tests to make sure we don't accidentally break SSO in the future

In addition I solve a state where all queries fail with "client authorized", but Browser will still not trigger its lost connection flow.

There was a filter put in 6 years ago to not needlessly trigger the connection flow before the user was connected (so don't trigger on authorization errors) and a more general fix was put in place 3 years ago superseded that (only trigger flow if we are supposed to be connected). The first fix is no longer needed, but didn't do any harm - except if your access_token expires and you don't catch the first "TokenExpiredError" and only see the "Unauthorized" errors.