|  | @@ -325,6 +325,9 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          if (randomBoolean()) {
 | 
	
		
			
				|  |  |              threadContext.putHeader(Task.X_OPAQUE_ID_HTTP_HEADER, randomAlphaOfLengthBetween(1, 4));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (randomBoolean()) {
 | 
	
		
			
				|  |  | +            threadContext.putHeader(Task.TRACE_ID, randomAlphaOfLength(32));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (randomBoolean()) {
 | 
	
		
			
				|  |  |              threadContext.putHeader(
 | 
	
		
			
				|  |  |                  AuditTrail.X_FORWARDED_FOR_HEADER,
 | 
	
	
		
			
				|  | @@ -1306,6 +1309,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1341,6 +1345,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              checkedFields.put(LoggingAuditTrail.REQUEST_BODY_FIELD_NAME, expectedMessage);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1373,6 +1378,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1400,6 +1406,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1447,6 +1454,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              checkedFields.put(LoggingAuditTrail.URL_QUERY_FIELD_NAME, "foo=bar");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1489,6 +1497,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              checkedFields.put(LoggingAuditTrail.URL_QUERY_FIELD_NAME, "bar=baz");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1526,6 +1535,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1570,6 +1580,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              checkedFields.put(LoggingAuditTrail.URL_QUERY_FIELD_NAME, "_param=baz");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1595,6 +1606,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1615,6 +1627,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1719,6 +1732,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |          clearLog();
 | 
	
	
		
			
				|  | @@ -1746,6 +1760,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          authentication(authentication, checkedFields);
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          if (index != null) {
 | 
	
		
			
				|  |  |              checkedArrayFields.put(LoggingAuditTrail.INDICES_FIELD_NAME, new String[] { index });
 | 
	
	
		
			
				|  | @@ -1782,6 +1797,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1806,6 +1822,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1826,6 +1843,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1863,6 +1881,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1883,6 +1902,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1922,6 +1942,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              checkedFields.put(LoggingAuditTrail.URL_QUERY_FIELD_NAME, "_param=baz");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1949,6 +1970,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1978,6 +2000,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1997,6 +2020,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2028,6 +2052,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              .put(LoggingAuditTrail.TRANSPORT_PROFILE_FIELD_NAME, profile)
 | 
	
		
			
				|  |  |              .put(LoggingAuditTrail.RULE_FIELD_NAME, "deny _all");
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2066,6 +2091,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |              .put(LoggingAuditTrail.TRANSPORT_PROFILE_FIELD_NAME, profile)
 | 
	
		
			
				|  |  |              .put(LoggingAuditTrail.RULE_FIELD_NAME, "allow default:accept_all");
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -2097,6 +2123,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2134,6 +2161,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2185,6 +2213,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          authentication(authentication, checkedFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2210,6 +2239,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          authentication(authentication, checkedFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -2238,6 +2268,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2257,6 +2288,7 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |          restOrTransportOrigin(request, threadContext, checkedFields);
 | 
	
		
			
				|  |  |          indicesRequest(request, checkedFields, checkedArrayFields);
 | 
	
		
			
				|  |  |          opaqueId(threadContext, checkedFields);
 | 
	
		
			
				|  |  | +        traceId(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          forwardedFor(threadContext, checkedFields);
 | 
	
		
			
				|  |  |          assertMsg(logger, checkedFields.map(), checkedArrayFields.map());
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -2664,16 +2696,31 @@ public class LoggingAuditTrailTests extends ESTestCase {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private static void opaqueId(ThreadContext threadContext, MapBuilder<String, String> checkedFields) {
 | 
	
		
			
				|  |  | -        final String opaqueId = threadContext.getHeader(Task.X_OPAQUE_ID_HTTP_HEADER);
 | 
	
		
			
				|  |  | -        if (opaqueId != null) {
 | 
	
		
			
				|  |  | -            checkedFields.put(LoggingAuditTrail.OPAQUE_ID_FIELD_NAME, opaqueId);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        setFieldFromThreadContext(threadContext, checkedFields, Task.X_OPAQUE_ID_HTTP_HEADER, LoggingAuditTrail.OPAQUE_ID_FIELD_NAME);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private static void traceId(ThreadContext threadContext, MapBuilder<String, String> checkedFields) {
 | 
	
		
			
				|  |  | +        setFieldFromThreadContext(threadContext, checkedFields, Task.TRACE_ID, LoggingAuditTrail.TRACE_ID_FIELD_NAME);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private static void forwardedFor(ThreadContext threadContext, MapBuilder<String, String> checkedFields) {
 | 
	
		
			
				|  |  | -        final String forwardedFor = threadContext.getHeader(AuditTrail.X_FORWARDED_FOR_HEADER);
 | 
	
		
			
				|  |  | -        if (forwardedFor != null) {
 | 
	
		
			
				|  |  | -            checkedFields.put(LoggingAuditTrail.X_FORWARDED_FOR_FIELD_NAME, forwardedFor);
 | 
	
		
			
				|  |  | +        setFieldFromThreadContext(
 | 
	
		
			
				|  |  | +            threadContext,
 | 
	
		
			
				|  |  | +            checkedFields,
 | 
	
		
			
				|  |  | +            AuditTrail.X_FORWARDED_FOR_HEADER,
 | 
	
		
			
				|  |  | +            LoggingAuditTrail.X_FORWARDED_FOR_FIELD_NAME
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private static void setFieldFromThreadContext(
 | 
	
		
			
				|  |  | +        ThreadContext threadContext,
 | 
	
		
			
				|  |  | +        MapBuilder<String, String> checkedFields,
 | 
	
		
			
				|  |  | +        String threadContextFieldName,
 | 
	
		
			
				|  |  | +        String logFieldName
 | 
	
		
			
				|  |  | +    ) {
 | 
	
		
			
				|  |  | +        final String value = threadContext.getHeader(threadContextFieldName);
 | 
	
		
			
				|  |  | +        if (value != null) {
 | 
	
		
			
				|  |  | +            checkedFields.put(logFieldName, value);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |