Trigger OAuth2 handshake only when /login is invoked.

This allows OAuth2 to still allow anonymous browsing
of Gerrit without having necessarily to redirect
to GitHub.

Change-Id: Iea446165c241fb812b6e19a826bcbfc374cffe2e
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthConfig.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthConfig.java
index 1ddfe03..5415ca6 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthConfig.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthConfig.java
@@ -31,6 +31,7 @@
   public static final String OAUTH_FINAL = "/oauth";
   public static final String LOGIN_OAUTH_ACCESS_TOKEN =
       "/login/oauth/access_token";
+  public static final String OAUTH_LOGIN = "/login";
 
   public final String gitHubUrl;
   public final String gitHubClientId;
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthFilter.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthFilter.java
index ce2cfd5..50cc750 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthFilter.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthFilter.java
@@ -29,10 +29,8 @@
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Strings;
-import com.google.gerrit.httpd.WebSession;
 import com.google.gson.Gson;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 
 public class OAuthFilter implements Filter {
   private static final org.slf4j.Logger log = LoggerFactory
@@ -87,7 +85,11 @@
               "Login failed");
         }
       } else {
+        if(oauth.isOAuthLogin(httpRequest)) {
         oauth.loginPhase1(httpRequest, httpResponse);
+        } else {
+          chain.doFilter(request, response);
+        }
       }
       return;
     } else {
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthProtocol.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthProtocol.java
index 92562e6..82af2dd 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthProtocol.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthProtocol.java
@@ -18,14 +18,12 @@
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.protocol.HTTP;
-import org.kohsuke.github.GHMyself;
 import org.kohsuke.github.GitHub;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.gson.Gson;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 import com.google.inject.Singleton;
 
 @Singleton
@@ -60,6 +58,10 @@
     return request.getRequestURI().endsWith(OAuthConfig.OAUTH_FINAL);
   }
   
+  public boolean isOAuthLogin(HttpServletRequest request) {
+    return request.getRequestURI().endsWith(OAuthConfig.OAUTH_LOGIN);
+  }
+  
   public GitHubLogin loginPhase2(HttpServletRequest request,
       HttpServletResponse response) throws IOException {