Ich möchte alle eingehenden Anfragen protokollieren & amp; Antworten von einem bestimmten Endpunkt mit Inhaltsfilterung. I.e. wenn ich eine Anfrage wie diese habe:
%Vor%Ich möchte es filtern, so dass es in solchen Logs aussieht
%Vor%Oder mit vollständig entferntem m: Photoelement.
Ich habe festgestellt, dass CXF LoggingInInterceptor und LoggingOutInterceptor enthält und ich könnte meine eigenen Interceptors schreiben, die das tun. Dies wäre jedoch ein wenig Arbeit, also ist meine Frage: Kennen Sie eine Out-of-the-Box-Lösung?
Ich hatte ein ähnliches Problem, bei dem ich Kennwörter in meiner Eingabeanforderung maskieren musste. Ich habe eine kleine Änderung an bestehenden LogginInterceptor und Override-Format-Methode und fügte meine Methode, um das Passwort zu maskieren. Hier ist ein Beispiel
%Vor%Und hinzugefügt calltom cxf Logging Bean in meiner cxf-bean.xml
%Vor%Hinweis Ich habe Apache commons-lang3 jar für die String-Manipulation verwendet. Ähnlich können Sie auch für die Antwort
verwendenVerwenden von Mustern und Festlegen von Schlüsseln mithilfe von Eigenschaften.
Interceptor
%Vor%Bean-Erstellung
%Vor%Beispieleingabe
%Vor%Und die Ausgabe
%Vor%Ich habe eine Open-Source-Bibliothek geschrieben, die darauf abzielt, SOAP-Nachrichten effektiv auszudrucken: xml-formatter -components-cxf . Eigenschaften umfassen:
Komplette Konfiguration Referenz für den Frühling .
>Bearbeiten: Die obige Bibliothek wurde zu einer generischen Bibliothek umgestaltet, die wahrscheinlich besser für den normalen Gebrauch ist -cases, dh kein in XML eingepacktes XML.