[BugFix] Fix OAuth login handshake - final phase The OAuth login handshake was seriously broken: when it was completed the final /login did not redirected back to Gerrit. Now it is fully working again, as if we are already logged in we just enrich the request and proceed to the normal Gerrit filter flow. Change-Id: I49ffa752a1684a14711a9356b2437be38b4d2844
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java index 2b0b774..ebd31bc 100644 --- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java +++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java
@@ -87,7 +87,8 @@ if (OAuthProtocol.isOAuthLogout(httpRequest)) { logout(request, response, chain, httpRequest); - } else if (OAuthProtocol.isOAuthRequest(httpRequest)) { + } else if (OAuthProtocol.isOAuthRequest(httpRequest) + && !ghLogin.isLoggedIn()) { login(request, httpRequest, httpResponse, ghLogin); } else { httpRequest = enrichAuthenticatedRequest(httpRequest, authCookie);