in custos-services/custos-integration-services/custos-integration-services-commons/src/main/java/org/apache/custos/integration/services/commons/interceptors/LoggingInterceptor.java [53:103]
public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) {
if (msg instanceof GeneratedMessageV3) {
Map<Descriptors.FieldDescriptor, Object> fieldDescriptors = ((GeneratedMessageV3) msg).getAllFields();
LogEvent.Builder logEventBuilder = LogEvent.newBuilder();
LoggingConfigurationRequest.Builder loggingConfigurationBuilder =
LoggingConfigurationRequest.newBuilder();
boolean tenantMatched = false;
boolean clientMatched = false;
for (Descriptors.FieldDescriptor descriptor : fieldDescriptors.keySet()) {
if (descriptor.getName().equals("tenant_id") || descriptor.getName().equals("tenantId")) {
logEventBuilder.setTenantId((long) fieldDescriptors.get(descriptor));
loggingConfigurationBuilder.setTenantId((long) fieldDescriptors.get(descriptor));
tenantMatched = true;
} else if (descriptor.getName().equals("client_id") || descriptor.getName().equals("clientId")) {
logEventBuilder.setClientId((String) fieldDescriptors.get(descriptor));
loggingConfigurationBuilder.setClientId((String) fieldDescriptors.get(descriptor));
clientMatched = true;
} else if (descriptor.getName().equals("username") || descriptor.getName().equals("userId")) {
logEventBuilder.setUsername((String) fieldDescriptors.get(descriptor));
}
String servicename = headers.
get(Metadata.Key.of(Constants.SERVICE_NAME, Metadata.ASCII_STRING_MARSHALLER));
String externaIP = headers.
get(Metadata.Key.of(Constants.X_FORWARDED_FOR, Metadata.ASCII_STRING_MARSHALLER));
if (servicename != null){
logEventBuilder.setServiceName(servicename);
}
if (method!= null){
logEventBuilder.setEventType(method);
}
if (externaIP!= null){
logEventBuilder.setEventType(externaIP);
}
logEventBuilder.setCreatedTime(System.currentTimeMillis());
}
if (tenantMatched && clientMatched) {
Status status = loggingClient.isLogEnabled(loggingConfigurationBuilder.build());
if (status.getStatus()) {
loggingClient.addLogEventAsync(logEventBuilder.build());
}
}
}
return msg;
}