Журнал всех сетевых взаимодействий Java-приложения
У меня есть чудовищное Java-приложение (клиент малоизвестного сервера приложений GNUEnterprise) и его источник, который я могу скомпилировать обратно после внесения в него некоторых изменений. Приложение интенсивно использует сеть, и мне нужно отслеживать каждый запрос и ответ. Я мог бы использовать сниффер, такой как Wireshark, но приложение работает со своим сервером по SSL, поэтому, не зная секретного ключа SSL-сертификата, любой перехваченный трафик довольно бесполезен.
Что я могу сделать, чтобы каждый запрос и ответ регистрировались из самого приложения? Мне нужно увидеть все отправленные и полученные заголовки. Я не хочу изменять весь код, отвечающий за сетевое взаимодействие. То, что я хочу, это поставить код как
Network.setDefaultLogger(myCustomLoggerInstance);
где-то рядом с началом приложения, а затем вmyCustomLoggerInstance
сделать все записи, которые мне нужны.
Также, учитывая, что все сетевые операции выполняются сURLConnection
S, я могу получить ответ заголовки сcon.getHeaderFields()
и запросить заголовки сcon.getRequestProperties()
, Но почему там нет файлов cookie? Как сбросить отправленные и полученные куки-файлы таким же образом?
РЕДАКТИРОВАТЬ: Я пытаюсь достичь того, чтобы имитировать связь RPC-приложения с его сервером через SSL, скажем, используяcurl
, Для этого мне нужно получить подробный журнал сетевого трафика приложения.