Unified Identity Management logo figure Unified Identity Management logo figure

Глобальные переменные MDC

На проекте используется MDC для хранения глобальных переменных, эти переменные потом вставляются в заголовки и ходят между сервисами.

Конвертирование MDC переменных в заголовки выполняет com.rooxteam.commons.logging.interceptor.LoggingRestTemplateInterceptor. Он конвертирует подмножество всех переменных хранящихся в MDC.

Конвертирование заголовков обратно в MDC

Эту обязанность выполняет com.rooxteam.commons.logging.filter.RequestLogger, он берет определенное подмножество заголовков и складывает их значения в MDC.

Audit

В некоторых случаях, события в audit подсистеме опираются на переменные в MDC, например событие webapi.social.mapping.create.success ожидает присутствия msisdn в MDC, когда его там не окажется, то создастся просто событие котрое не привязано к определенному msisdn, что может поломать тесты и Вы будете долго искать причину :)