@Bean
    @ConditionalOnMissingBean(name = "casClientInfoLoggingFilterManagementContext")
    public FilterRegistrationBean<ClientInfoThreadLocalFilter> casClientInfoLoggingFilterManagementContext(
        @Qualifier(TenantExtractor.BEAN_NAME)
        final TenantExtractor tenantExtractor,
        final CasConfigurationProperties casProperties) {
        val bean = new FilterRegistrationBean<ClientInfoThreadLocalFilter>();
        val audit = casProperties.getAudit().getEngine();
        val options = ClientInfoExtractionOptions.builder()
            .alternateLocalAddrHeaderName(audit.getAlternateClientAddrHeaderName())
            .alternateServerAddrHeaderName(audit.getAlternateServerAddrHeaderName())
            .useServerHostAddress(audit.isUseServerHostAddress())
            .httpRequestHeaders(audit.getHttpRequestHeaders())
            .build();
        bean.setFilter(new ClientInfoThreadLocalFilter(options, tenantExtractor));
        bean.setUrlPatterns(CollectionUtils.wrap("/*"));
        bean.setName("CAS Client Info Logging Filter");
        bean.setAsyncSupported(true);
        bean.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
        return bean;
    }
This is {@link CasCoreWebManagementContextConfiguration}.
This class is only activated when CAS is deployed in a separate management context
triggered when the management port is set to a different port.
@author Misagh Moayyed
@since 7.2.0
core/cas-server-core-web/src/main/java/org/apereo/cas/config/CasCoreWebManagementContextConfiguration.java