- LOG.info(
- "redirecting unauthenticated request {} to /signin.html",
- request.getRequestURI()
- );
- response.sendRedirect("/signin.html");
+ HttpSession session = request.getSession();
+ if (session.getAttribute(REDIRECT_ATTRIBUTE) == null)
+ {
+ LOG.info(
+ "redirecting unauthenticated request to {}",
+ request.getRequestURI()
+ );
+ StringBuffer url = request.getRequestURL();
+ if (request.getQueryString() != null)
+ {
+ url.append('?');
+ url.append(request.getQueryString());
+ }
+ session.setAttribute(REDIRECT_ATTRIBUTE, url.toString());
+ response.sendRedirect("/signin.html");
+ }
+ else
+ {
+ LOG.info(
+ "redirect to sign-in already in progress, forbidding access to {}",
+ request.getRequestURI()
+ );
+ response.sendError(HttpServletResponse.SC_FORBIDDEN);
+ }