Redirect to login on anonymous access to profile pages

When an unauthorized session tries to access any of the profile pages,
server will return status code 500 and a generic "Server Error" page
will be rendered. Instead, user should be redirected to the login page.

To fix this we simply check if user is authorized in
`VelocityViewServlet` and if not, redirect to the `auth.loginUrl`.

Bug: Issue 311627062
Change-Id: I3264f50500733e277ef10ca1a2ff36287f89fc99
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java
index b7dc08f..5e4498f 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/velocity/VelocityViewServlet.java
@@ -13,8 +13,11 @@
 // limitations under the License.
 package com.googlesource.gerrit.plugins.github.velocity;
 
+import static com.googlesource.gerrit.plugins.github.oauth.GitHubOAuthConfig.GITHUB_PLUGIN_OAUTH_SCOPE;
+
 import com.google.common.base.MoreObjects;
 import com.google.gerrit.server.CurrentUser;
+import com.google.gerrit.server.config.AuthConfig;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 import com.google.inject.Singleton;
@@ -53,6 +56,7 @@
   private final GitHubConfig config;
   private final VirtualDomainConfig virtualDomainConfig;
   private final CanonicalWebUrls canonicalWebUrls;
+  private final AuthConfig authConfig;
 
   @Inject
   public VelocityViewServlet(
@@ -62,7 +66,8 @@
       Provider<CurrentUser> userProvider,
       GitHubConfig config,
       VirtualDomainConfig virutalDomainConfig,
-      CanonicalWebUrls canonicalWebUrls) {
+      CanonicalWebUrls canonicalWebUrls,
+      AuthConfig authConfig) {
 
     this.velocityRuntime = velocityRuntime;
     this.modelProvider = modelProvider;
@@ -71,6 +76,7 @@
     this.config = config;
     this.virtualDomainConfig = virutalDomainConfig;
     this.canonicalWebUrls = canonicalWebUrls;
+    this.authConfig = authConfig;
   }
 
   @Override
@@ -79,6 +85,12 @@
     HttpServletRequest req = (HttpServletRequest) request;
     HttpServletResponse resp = (HttpServletResponse) response;
 
+    if (!(req.getRequestURI().equals(GITHUB_PLUGIN_OAUTH_SCOPE)
+        || userProvider.get().isIdentifiedUser())) {
+      resp.sendRedirect(authConfig.getLoginUrl());
+      return;
+    }
+
     String pathInfo =
         STATIC_PREFIX
             + MoreObjects.firstNonNull((String) req.getAttribute("destUrl"), req.getPathInfo());