javax_slr (javax_slr) wrote,
javax_slr
javax_slr

Category:

Большой успех

Наверное первый раз на работе за последние 4 года встала передо мной задача из категории "невозможных". Т.е. известно, что это сделать нельзя, а кроме того год назад программист сильнее и умнее меня это пробывал сделать.

Нам надо в новой версии мерять входы на вебапликацию в веблоджике. Т.е. приходит запрос, ГЕТ или ПОСТ, мы смотри - подходит ли он под один из шаблонов и если да то меряем сколько он занял. Кроме того нам надо в каждый ХТМЛ сзади вставить (хм ... сорри) наш Java Script.

Существует решение этой задачи методами инструментации байт кода - нашли сервлеты, иснтрументировали, вызвали наши методы. даже там, с инструментацией, где возможно всё, добавить что то в респонс статического ХТМЛя было сложной задачей (не мной решенной).

А теперь возникла идея сделать это всё без инструментации, только HTTP фильтрами.

Сначала надо было фильтры поставить - это для меня оказалось не сложной задачей - посмотреел в соурсах веблоджика где они хранятся, полез во нутренние структуры данных и рефлекшном поставил свой фильтр (предварительно в ран тайме добавив его в класпас). Конечно это бандитизм, но в рамках национального консенсуса.

Потом добавил что надо в response сервлета.

Потом обнаружил, что в случае статического файла, внутрений сервлет веблоджика отправляет фай на сокет и закрывает стрим, так что потом уже я ничего добавить не могу.

И неделю я бился над тем, как изменяя поля классов (у меня только рефлекшн, нетиснтрументации) изменить флоу так, чтобы стрим не закрыли и я мог добавить что то свое. да еще и Content-Length исправить.
И мне сегодня это удалось!
Tags: programming
Subscribe

  • Грузия 2021. Тбилиси

    Предыдущая глава: Идея поездки, логистика, общие выводы Мы сняли на всю неделю (включая дни, в которые выезжали) апартаменты через AirBnB. В…

  • Грузия 2021. Идея поездки, логистика, общие выводы

    Ездили двумя парами - Паша с Леной и Саша с Леной. Снимали апартаменты на неделю в Тбилиси. Летали Аркиа - 332 доллара за билет. Коронная…

  • "Ради всего человечества"

    Закончил смотреть второй сезон "Для всего человечества". Напомню - речь идет об альтернативной истории американской космической программы, как…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 15 comments

  • Грузия 2021. Тбилиси

    Предыдущая глава: Идея поездки, логистика, общие выводы Мы сняли на всю неделю (включая дни, в которые выезжали) апартаменты через AirBnB. В…

  • Грузия 2021. Идея поездки, логистика, общие выводы

    Ездили двумя парами - Паша с Леной и Саша с Леной. Снимали апартаменты на неделю в Тбилиси. Летали Аркиа - 332 доллара за билет. Коронная…

  • "Ради всего человечества"

    Закончил смотреть второй сезон "Для всего человечества". Напомню - речь идет об альтернативной истории американской космической программы, как…