package org.apereo.cas.logging.config; import org.apereo.cas.configuration.CasConfigurationProperties; import org.apereo.cas.logging.web.ThreadContextMDCServletFilter; import org.apereo.cas.ticket.registry.TicketRegistrySupport; import org.apereo.cas.web.support.CookieRetrievingCookieGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import java.util.Collections; import java.util.HashMap; import java.util.Map; /** * This is {@link CasLoggingConfiguration}. * * @author Misagh Moayyed * @since 5.0.0 */ @Configuration("casLoggingConfiguration") @EnableConfigurationProperties(CasConfigurationProperties.class) public class CasLoggingConfiguration { @Autowired @Qualifier("ticketGrantingTicketCookieGenerator") private CookieRetrievingCookieGenerator ticketGrantingTicketCookieGenerator; @Autowired @Qualifier("defaultTicketRegistrySupport") private TicketRegistrySupport ticketRegistrySupport; @Bean public FilterRegistrationBean threadContextMDCServletFilter() { final Map<String, String> initParams = new HashMap<>(); final FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new ThreadContextMDCServletFilter(ticketRegistrySupport, this.ticketGrantingTicketCookieGenerator)); bean.setUrlPatterns(Collections.singleton("/*")); bean.setInitParameters(initParams); bean.setName("threadContextMDCServletFilter"); bean.setOrder(Ordered.HIGHEST_PRECEDENCE + 1); return bean; } }