Rejestruj wszystkie interakcje sieciowe aplikacji Java

Mam potworną aplikację Java (klient mało znanego serwera aplikacji GNUEnterprise) i jej źródło, które mogę skompilować po wprowadzeniu w niej zmian. Aplikacja intensywnie korzysta z sieci i muszę monitorować każde żądanie i odpowiedź. Mogłabym użyć sniffera takiego jak Wireshark, ale aplikacja działa z serwerem przez SSL, więc nie znając klucza prywatnego certyfikatu SSL, każdy podsłuchiwany ruch jest całkiem bezużyteczny.

Co mogę zrobić, aby każde żądanie i odpowiedź były rejestrowane z samej aplikacji? Muszę zobaczyć wszystkie wysłane i odebrane nagłówki. Nie chcę zmieniać całego kodu odpowiedzialnego za interakcję z siecią. Chcę umieścić kod podobny do tego

Network.setDefaultLogger(myCustomLoggerInstance);

gdzieś w pobliżu początku aplikacji, a następnie wmyCustomLoggerInstance zrób wszystko, czego potrzebuję.

Ponadto, biorąc pod uwagę wszystkie operacje sieciowe są wykonywaneURLConnections, mogę uzyskać nagłówki odpowiedzi zcon.getHeaderFields() i zażądaj nagłówkówcon.getRequestProperties(). Ale dlaczego nie ma ciasteczek? Jak zrzucić wysłane i odebrane pliki cookie w ten sam sposób?

EDYTOWAĆ: To, co próbuję osiągnąć, to naśladowanie komunikacji aplikacji RPC z serwerem za pomocą SSL, na przykład za pomocącurl. W tym celu muszę uzyskać szczegółowy dziennik ruchu sieciowego aplikacji.

questionAnswers(5)

yourAnswerToTheQuestion