Registrar todas as interações de rede do aplicativo Java

Eu tenho um aplicativo Java monstruoso (um cliente do servidor de aplicativos pouco conhecido GNUEnterprise) e sua origem, que eu posso compilar de volta depois de fazer algumas alterações nele. O aplicativo usa muito a rede e eu preciso monitorar cada solicitação e resposta. Eu poderia usar um sniffer como o Wireshark, mas o aplicativo funciona com seu servidor por SSL, portanto, não conhecer a chave privada do certificado SSL em nenhum tráfego sniffed é muito inútil.

O que posso fazer para que todos os pedidos e respostas sejam registrados a partir do próprio aplicativo? Preciso ver todos os cabeçalhos enviados e recebidos. Eu não quero alterar todo o código responsável pela interação na rede. O que eu quero é colocar um código como

Network.setDefaultLogger(myCustomLoggerInstance);

em algum lugar perto do início do aplicativo e, em seguida, nomyCustomLoggerInstance faça todo o registro que preciso.

Além disso, todas as operações de rede são feitas comURLConnections, posso obter cabeçalhos de resposta comcon.getHeaderFields() e solicitar cabeçalhos comcon.getRequestProperties(). Mas por que os biscoitos não estão lá? Como despejar os cookies enviados e recebidos da mesma maneira?

EDITAR: O que eu estou tentando alcançar é para imitar a comunicação do aplicativo RPC com seu servidor através de SSL, digamos, usandocurl. Para isso, preciso obter um log detalhado do tráfego de rede do aplicativo.

questionAnswers(5)

yourAnswerToTheQuestion