diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
index 387a15f..bf19e88 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
@@ -52,7 +52,6 @@
 /** Base servlet class for Gitiles servlets that serve Soy templates. */
 public abstract class BaseServlet extends HttpServlet {
   private static final long serialVersionUID = 1L;
-  private static final String ACCESS_ATTRIBUTE = BaseServlet.class.getName() + "/GitilesAccess";
   private static final String DATA_ATTRIBUTE = BaseServlet.class.getName() + "/Data";
   private static final String STREAMING_ATTRIBUTE = BaseServlet.class.getName() + "/Streaming";
 
@@ -366,12 +365,7 @@
   }
 
   protected GitilesAccess getAccess(HttpServletRequest req) {
-    GitilesAccess access = (GitilesAccess) req.getAttribute(ACCESS_ATTRIBUTE);
-    if (access == null) {
-      access = accessFactory.forRequest(req);
-      req.setAttribute(ACCESS_ATTRIBUTE, access);
-    }
-    return access;
+    return GitilesAccess.getAccess(req, accessFactory);
   }
 
   protected void setCacheHeaders(HttpServletRequest req, HttpServletResponse res) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesAccess.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesAccess.java
index ec3b5ff..505098a 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesAccess.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesAccess.java
@@ -16,6 +16,7 @@
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import javax.annotation.Nullable;
 import javax.servlet.http.HttpServletRequest;
@@ -30,6 +31,21 @@
  * information about the host and repository.
  */
 public interface GitilesAccess {
+  /** Access for the current request, if it has been initialized. */
+  public static Optional<GitilesAccess> getAccess(HttpServletRequest req) {
+    return Optional.ofNullable((GitilesAccess) req.getAttribute(GitilesAccess.class.getName()));
+  }
+
+  /** Access for the current request. */
+  public static GitilesAccess getAccess(HttpServletRequest req, Factory factory) {
+    GitilesAccess access = getAccess(req).orElse(null);
+    if (access == null) {
+      access = factory.forRequest(req);
+      req.setAttribute(GitilesAccess.class.getName(), access);
+    }
+    return access;
+  }
+
   /** Factory for per-request access. */
   public interface Factory {
     GitilesAccess forRequest(HttpServletRequest req);
