tree 2ad597b4679c049e0847e8c8011c860de72c69e5
parent f94abd64a288e5c25adee4d3e88bf79990f77c5b
author Luca Milanesio <luca.milanesio@gmail.com> 1713526428 +0100
committer Luca Milanesio <luca.milanesio@gmail.com> 1713529752 +0100

Fix OutOfScopeException getting the serverName from HTTP request

Whenever the caller was coming from an HTTP thread that was not
coming from a Guice filter (e.g. GitHub OAuth filter) the request
for the canonicalWebUrl was throwing an OutOfScopeException.

One sample scenario was the following stack of calls:

c.g.g.m.v.VirtualHostHttpCanonicalWebUrlProvider.lambda$getServerName
java.base/java.util.Optional.map
c.g.g.m.v.VirtualHostHttpCanonicalWebUrlProvider.getServerName
c.g.g.m.v.VirtualHostHttpCanonicalWebUrlProvider.get
c.g.g.p.g.o.CanonicalWebUrls.getCannonicalWebUrl
c.g.g.p.g.o.CanonicalWebUrls.getOAuthFinalRedirectUrl
c.g.g.p.g.o.OAuthProtocol.getAuthorizationUrl
c.g.g.p.g.o.OAuthProtocol.loginPhase1
c.g.g.p.g.o.GitHubLogin.login
c.g.g.p.g.o.OAuthWebFilter.login
c.g.g.p.g.o.OAuthWebFilter.doFilter
c.g.g.p.g.o.OAuthFilter.doFilter
org.eclipse.jetty.servlet.FilterHolder.doFilter

Because the request for a canonical web url was coming
from OAuthFilter.doFilter invoked directly from Jetty,
the Guice filter did not manage to inject the current
request, making the lamba execution of the map to
throw an unchecked exception.

By swapping the check between the local thread the scoped HTTP
request and catching the OutOfScopeException, the above condition
would just return into an empty server name.

Change-Id: Ie645fa3e07d128d6fbdbd0624196e7c43d35929c
