Можно ли иметь фильтры на ConnectHandler? - PullRequest
0 голосов
/ 01 ноября 2018

Я использовал оригинальный Jetty-прокси в Jetty 9, когда встроенный стартовый прокси-сервер, после изменения прокси-порта браузера, весь доступ может быть через прокси-сервер, я добавил свой собственный фильтр в прокси-сервер, добавив способ :

ServletHandler handler = new ServletHandler();
FilterHolder fh = handler.addFilterWithMapping((Class<? extends Filter>) TLFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
context.addFilter(fh, "/*", EnumSet.of(DispatcherType.REQUEST));

Но мой фильтр может фильтровать только HTTP-запросы, но я не могу фильтровать HTTPS.

1 Ответ

0 голосов
/ 01 ноября 2018

Разработчики на пристани дали результаты: Можно доставить запрос CONNECT в метод службы Servlet, но в конечном итоге это бесполезно, поскольку невозможно обработать CONNECT внутри сервлета. На самом деле у вас нет доступа к необработанным потокам ввода-вывода, только HTTP-содержимое запроса / ответа. Вы можете почти выполнять его работу, но не эффективно (без асинхронного ввода-вывода и т. Д.). В конечном итоге, в конечном итоге вы все равно вернетесь к API Jetty.

Кроме того, почему бы просто не использовать поддержку, уже предоставленную Jetty:

http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/proxy/ConnectHandler.html http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/proxy/ProxyServlet.html

...