#java #elasticsearch #jsoup #kibana
#java #elasticsearch #jsoup #kibana
Вопрос:
Я хочу написать автоматический тест, который проверяет, есть ли журналы в пользовательском интерфейсе kibana, и у меня проблема с отправкой http-запроса с использованием Java в kibana. Из браузера все работает нормально, но когда я отправляю HTTP-запрос из библиотеки Jsoup (то же самое происходит и с curl), kibana показывает мне следующее:
Please upgrade your browser This Elastic installation has strict
security requirements enabled that your current browser does not meet.
Похоже, что kibana выполняет какой-то уязвимый js, и если он выполняется правильно, он прекращает загрузку пользовательского интерфейса kibana.
<script>
// Since this is an unsafe inline script, this code will not run
// in browsers that support content security policy(CSP). This is
// intentional as we check for the existence of __kbnCspNotEnforced__ in
// bootstrap.
window.__kbnCspNotEnforced__ = true;
</script>
<script src="/bundles/app/kibana/bootstrap.js"></script>
Есть ли у вас какие-либо идеи, как обойти это из кода? Я думаю, что эту функцию безопасности можно отключить в kibana.yaml, но я не хочу отключать ее только для теста.
Комментарии:
1. Вероятно, вам придется установить UserAgent в вашем коде, чтобы имитировать совместимый браузер.
2. Я установил его, но это не имело значения. Проблема заключается в этой политике безопасности контента (CSP), которая, похоже, не выполняется HTTP-клиентом.
3. JSoup не может запускать какой-либо JavaScript. Это всего лишь анализатор. Таким образом, кажется, что веб-сайт kibana нуждается в JavaScript для правильного отображения. С учетом этого ваш подход к тестированию JSoup, вероятно, не является хорошей идеей.
Ответ №1:
Я отказался от такого автоматического тестирования, но я хочу ответить здесь на одно возможное решение (я не тестировал его, но оно должно работать).
Вы можете использовать браузер Chrome без головы. Он использует браузер Chrome без пользовательского интерфейса, который можно использовать с драйвером Chrome, использующим библиотеку selenium. Дополнительная информация:https://www.scrapingbee.com/blog/introduction-to-chrome-headless /
Ответ №2:
У меня возникла эта ошибка при попытке получить к нему доступ в Chrome [Версия: 111.0.5563.64 (официальная сборка) (64-разрядная версия)].
Затем я переключился на Edge [Версия: 110.0.1587.63 (официальная сборка) (64-разрядная версия)], и все работало нормально.