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);
}
}