public void doFilter()

in src/main/java/com/gerritforge/gerrit/plugins/account/AccountLoginRedirectFilter.java [63:84]


  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    Optional<String> redirectUrl =
        getRedirectUrlFromCookie((HttpServletRequest) request)
            .filter(r -> webSession.get().isSignedIn());
    String requestUri = ((HttpServletRequest) request).getRequestURI();
    String pluginUri = getPluginUri();
    HttpServletResponse httpResponse = (HttpServletResponse) response;

    if (redirectUrl.isPresent() && webSession.get().isSignedIn()) {
      redirectAndResetCookie(httpResponse, redirectUrl.get());
    } else if (requestUri.startsWith(pluginUri) && !webSession.get().isSignedIn()) {
      Cookie redirectCookie = new Cookie(REDIRECT_COOKIE, requestUri);
      redirectCookie.setPath("/");
      redirectCookie.setMaxAge(REDIRECT_COOKIE_TTL);
      redirectCookie.setSecure(false);
      httpResponse.addCookie(redirectCookie);
      httpResponse.sendRedirect(urlProvider.get() + "login");
    } else {
      chain.doFilter(request, response);
    }
  }