Class HawtioManagementConfiguration

java.lang.Object
io.hawt.springboot.HawtioManagementConfiguration

@Configuration @AutoConfigureAfter(org.jolokia.support.spring.actuator.JolokiaEndpointAutoConfiguration.class) @ConditionalOnBean(HawtioEndpoint.class) public class HawtioManagementConfiguration extends Object
  • Constructor Details

    • HawtioManagementConfiguration

      public HawtioManagementConfiguration(EndpointPathResolver pathResolver)
  • Method Details

    • initializeHawtioPlugins

      @Autowired public void initializeHawtioPlugins(HawtioEndpoint hawtioEndpoint, Optional<List<HawtioPlugin>> plugins)
    • hawtioConfigManager

      @Bean public ConfigManager hawtioConfigManager(HawtioProperties hawtioProperties)
    • hawtioWelcomeFiles

      @Bean public org.springframework.web.servlet.handler.SimpleUrlHandlerMapping hawtioWelcomeFiles(EndpointPathResolver pathResolver)
    • hawtioUrlMapping

      @Bean @ConditionalOnBean(org.jolokia.support.spring.actuator.JolokiaEndpoint.class) public org.springframework.web.servlet.handler.SimpleUrlHandlerMapping hawtioUrlMapping(EndpointPathResolver pathResolver)
    • redirector

      @Bean public Redirector redirector()
    • trailingSlashFilter

      @Bean @Order(0) public org.springframework.boot.web.servlet.FilterRegistrationBean<TrailingSlashFilter> trailingSlashFilter(Redirector redirector)
      Since Spring Boot 3.0, paths with trailing slash are not automatically processed and need to be explicitly configured for handling them. This Spring Boot specific filter used to redirect /actuator/hawtio/ requests to /actuator/hawtio/index.html, but now it used for consistency with WAR deployments - to redirect /actuator/hawtio to /actuator/hawtio/. Then the request is being processed by ClientRouteRedirectFilter.
    • sessionExpiryFilter

      @Bean @Order(1) public org.springframework.boot.web.servlet.FilterRegistrationBean<SessionExpiryFilter> sessionExpiryFilter()
    • cacheFilter

      @Bean @Order(2) public org.springframework.boot.web.servlet.FilterRegistrationBean<CacheHeadersFilter> cacheFilter()
    • hawtioCorsFilter

      @Bean @Order(3) public org.springframework.boot.web.servlet.FilterRegistrationBean<CORSFilter> hawtioCorsFilter()
    • xframeOptionsFilter

      @Bean @Order(4) public org.springframework.boot.web.servlet.FilterRegistrationBean<XFrameOptionsFilter> xframeOptionsFilter()
    • xxssProtectionFilter

      @Bean @Order(5) public org.springframework.boot.web.servlet.FilterRegistrationBean<XXSSProtectionFilter> xxssProtectionFilter()
    • xContentTypeOptionsFilter

      @Bean @Order(6) public org.springframework.boot.web.servlet.FilterRegistrationBean<XContentTypeOptionsFilter> xContentTypeOptionsFilter()
    • contentSecurityPolicyFilter

      @Bean @Order(7) public org.springframework.boot.web.servlet.FilterRegistrationBean<ContentSecurityPolicyFilter> contentSecurityPolicyFilter()
    • strictTransportSecurityFilter

      @Bean @Order(8) public org.springframework.boot.web.servlet.FilterRegistrationBean<StrictTransportSecurityFilter> strictTransportSecurityFilter()
    • publicKeyPinningFilter

      @Bean @Order(9) public org.springframework.boot.web.servlet.FilterRegistrationBean<PublicKeyPinningFilter> publicKeyPinningFilter()
    • referrerPolicyFilter

      @Bean @Order(10) public org.springframework.boot.web.servlet.FilterRegistrationBean<ReferrerPolicyFilter> referrerPolicyFilter()
    • jolokiaAuthenticationFilter

      @Bean @Order(11) @ConditionalOnBean(org.jolokia.support.spring.actuator.JolokiaEndpoint.class) public org.springframework.boot.web.servlet.FilterRegistrationBean<AuthenticationFilter> jolokiaAuthenticationFilter(EndpointPathResolver pathResolver)
      AuthenticationFilter handling direct Jolokia Actuator endpoint requests (/actuator/jolokia/*).
      Parameters:
      pathResolver -
      Returns:
    • hawtioProxyAuthenticationFilter

      @Bean @Order(11) public org.springframework.boot.web.servlet.FilterRegistrationBean<AuthenticationFilter> hawtioProxyAuthenticationFilter()
      AuthenticationFilter handling proxy requests (/actuator/hawtio/proxy/*). No need to declare /actuator/hawtio/jolokia/* mapping here, as it'd be a duplication of jolokiaAuthenticationFilter(io.hawt.springboot.EndpointPathResolver) mapping.
      Returns:
    • clientRouteRedirectFilter

      @Bean @Order(12) public org.springframework.boot.web.servlet.FilterRegistrationBean<ClientRouteRedirectFilter> clientRouteRedirectFilter(Redirector redirector, EndpointPathResolver pathResolver)
      This filter was called LoginRedirectFilter, but now it also handles redirection/forwarding for client-side routes (React Router), so we no longer need this special RegExp mapped RequestMapping annotated method in HawtioEndpoint.
      Parameters:
      redirector -
      pathResolver -
      Returns:
    • baseTagHrefFilter

      @Bean @Order(13) public org.springframework.boot.web.servlet.FilterRegistrationBean<BaseTagHrefFilter> baseTagHrefFilter(EndpointPathResolver pathResolver)
    • flightRecorderDownloadFacade

      @Bean @Order(14) public org.springframework.boot.web.servlet.FilterRegistrationBean<FlightRecordingDownloadFacade> flightRecorderDownloadFacade(EndpointPathResolver pathResolver)
    • jolokiaProxyServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<ProxyServlet> jolokiaProxyServlet()
    • userServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<KeycloakUserServlet> userServlet()
    • loginServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<LoginServlet> loginServlet(Redirector redirector)
    • logoutServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<LogoutServlet> logoutServlet(Redirector redirector)
    • keycloakServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<KeycloakServlet> keycloakServlet()
    • oidcServlet

      @Bean public org.springframework.boot.web.servlet.ServletRegistrationBean<AuthConfigurationServlet> oidcServlet()
    • hawtioContextListener

      @Bean public org.springframework.boot.web.servlet.ServletListenerRegistrationBean<SpringHawtioContextListener> hawtioContextListener(ConfigManager configManager)
    • servletContextInitializer

      @Bean public org.springframework.boot.web.servlet.ServletContextInitializer servletContextInitializer()