This brings back background discovery, so that even if we hit the timeout, we can continue the HTTP requests and warm cache, in case the user performs another login later.
This also makes all of the timeouts configurable, and specifically adds timeouts to the HTTP client. It looks like there was no timeout by default, or maybe cancelling the future was an issue, but we were seeing "2 minute" response times for some webfinger requests, presumably some OS timeout.
This brings back background discovery, so that even if we hit the timeout, we can continue the HTTP requests and warm cache, in case the user performs another login later.
This also makes all of the timeouts configurable, and specifically adds timeouts to the HTTP client. It looks like there was no timeout by default, or maybe cancelling the future was an issue, but we were seeing "2 minute" response times for some webfinger requests, presumably some OS timeout.