Registrar todas las interacciones de red de la aplicación Java

Tengo una aplicación Java monstruosa (un cliente del servidor de aplicaciones poco conocido GNUEnterprise) y su fuente, que puedo volver a compilar después de hacer algunos cambios. La aplicación utiliza mucho la red y necesito monitorear cada solicitud y respuesta. Podría usar un rastreador como Wireshark, pero la aplicación funciona con su servidor a través de SSL, por lo que al no saber la clave privada del certificado SSL, el tráfico inhalado es bastante inútil.

¿Qué puedo hacer para hacer que cada solicitud y respuesta se registre desde la propia aplicación? Necesito ver todos los encabezados enviados y recibidos. No quiero alterar todo el código responsable de la interacción de la red. Lo que quiero es poner un código como

Network.setDefaultLogger(myCustomLoggerInstance);

En algún lugar cerca del inicio de la aplicación y luego en elmyCustomLoggerInstance hacer todo el registro que necesito.

Además, dado que todas las operaciones de red se realizan conURLConnections, puedo obtener encabezados de respuesta concon.getHeaderFields() y solicitar encabezados concon.getRequestProperties(). Pero ¿por qué las galletas no están ahí? ¿Cómo volcar las cookies enviadas y recibidas de la misma manera?

EDITAR: Lo que estoy tratando de alcanzar es imitar la comunicación de la aplicación RPC con su servidor a través de SSL, por ejemplo, usandocurl. Para esto necesito obtener un registro detallado del tráfico de red de la aplicación.

Respuestas a la pregunta(5)

Su respuesta a la pregunta