2017-02-05 7 views
0

Чтобы сделать приложение совместимым с нашей реализацией SSO, мне нужно обработать HTTP-запрос (который добавляет некоторые HTTP-заголовки), а затем «переслать» этот запрос на другой веб-сервер (сторонний веб-сервер).Как реализовать (приложение) прокси в Java на Tomcat?

[Browser]-->[MyProxyApp on Tomcat]-->[Another Webserver] 

Возможно ли, что Tomcat может «пересылать» (обратный прокси) запрос другому серверу?

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

«Лапша», кажется, чтобы сделать работу, но учитывая его возраст, я не уверен, что это 100% совместимость с текущими веб-стандартов (WebSockets, longpolling и такие вещи)

+0

Не используя Tomcat или сервлеты. Вам нужно написать код Sockets. Использование сервлета добавит слишком много латентности, даже если вы можете заставить его работать, что является проблематичным. Или используйте Apache HTTPD, что делает его тривиальным. – EJP

+0

Да, я бы использовал apache, но у меня есть код Java, который нужно запустить, я не хочу вставлять его в модуль apache. Задержка не является проблемой - я имею в виду, что она не будет работать хорошо. – PhilW

ответ

1

Существует активный проект GitHub которая была вокруг в течение некоторого времени:

https://github.com/mitre/HTTP-Proxy-Servlet

Он реализован в виде Java Servlet на основе HttpClient, вероятно, именно то, что вы думали, но поддерживается и доступен в репозиториях Maven

https://mvnrepository.com/artifact/org.mitre.dsmiley.httpproxy/smiley-http-proxy-servlet

+1

Выглядит многообещающе! Я рассмотрю это, спасибо – PhilW