Class ClientRouteRedirectFilter

java.lang.Object
io.hawt.web.auth.ClientRouteRedirectFilter
All Implemented Interfaces:
jakarta.servlet.Filter

public class ClientRouteRedirectFilter extends Object implements jakarta.servlet.Filter

A filter that handles client-side routing URLs and redirects to login page depending on authentication state. There are two kinds of URLs handled:

  • URLs that correspond to Hawtio resources and servlets
  • URLs that correspond to Hawtio-React client routes (which would give HTTP/404 when handled)

Special client route is /login, which should be handled carefuly and in some cases user may get redirected to this URL for smoother client experience (no React app blinking).

This filter should be called after AuthenticationFilter, but for requests not handled by that filter, we may perform pre-emptive authentication.

This filter used to be called LoginRedirectFilter, but it's doing a bit more now to provide unified experience between WAR, Spring Boot and Quarkus deployments.

Even in Spring Boot, this filter is called before DispatcherServlet, so it's invoked before any @RequestMapping methods.

  • Field Details

  • Constructor Details

    • ClientRouteRedirectFilter

      public ClientRouteRedirectFilter()
    • ClientRouteRedirectFilter

      public ClientRouteRedirectFilter(String[] unsecuredPaths, String hawtioBase)
  • Method Details

    • init

      public void init(jakarta.servlet.FilterConfig filterConfig) throws jakarta.servlet.ServletException
      Specified by:
      init in interface jakarta.servlet.Filter
      Throws:
      jakarta.servlet.ServletException
    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException
      Specified by:
      doFilter in interface jakarta.servlet.Filter
      Throws:
      IOException
      jakarta.servlet.ServletException
    • setRedirector

      public void setRedirector(Redirector redirector)