Protokollieren Sie alle Netzwerkinteraktionen der Java-Anwendung

Ich habe eine monströse Java-App (ein Client des wenig bekannten Anwendungsservers GNUEnterprise) und dessen Quelle, die ich nach einigen Änderungen kompilieren kann. Die App nutzt das Netzwerk stark und ich muss jede Anfrage und Antwort überwachen. Ich könnte einen Sniffer wie Wireshark verwenden, aber die Anwendung arbeitet mit seinem Server über SSL, so dass es ziemlich nutzlos ist, den privaten Schlüssel des SSL-Zertifikats nicht zu kennen, wenn der Datenverkehr beschnüffelt wird.

Was kann ich tun, damit jede Anforderung und Antwort von der Anwendung selbst protokolliert wird? Ich muss alle gesendeten und empfangenen Header sehen. Ich möchte nicht den gesamten Code ändern, der für die Netzwerkinteraktion verantwortlich ist. Was ich möchte, ist, einen Code wie zu setzen

Network.setDefaultLogger(myCustomLoggerInstance);

Irgendwo in der Nähe von Start der App und dann in dermyCustomLoggerInstance mache die ganze Protokollierung, die ich brauche.

Außerdem werden bei allen Netzwerkoperationen mit vorgenommenURLConnections, ich kann Antwortheader mit bekommencon.getHeaderFields() und fordere Header mit ancon.getRequestProperties(). Aber warum gibt es keine Cookies? Wie kann ich gesendete und empfangene Cookies auf die gleiche Weise sichern?

BEARBEITEN: Ich versuche zu erreichen, indem ich die Kommunikation der RPC-Anwendung mit dem Server über SSL nachahmecurl. Dazu muss ich ein detailliertes Protokoll des Netzwerkverkehrs der App abrufen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage