Взаимодействие с ServletApplication через Jboss-fuse-ESB в нескольких сетях
В нашей локальной сети у нас есть приложение типа веб-IDE, доступ к которому осуществляется через популярные веб-браузеры.
Я хотел бы использовать Jboss FUSE ESB, чтобы быть / действовать как туннель между локальной и облачной / любой сетью.
Чтобы мы через клиент веб-браузера могли безразлично подключаться к приложению к сети, в которой находится браузер. Все время отправлять запросы через ESB a клиентскому браузеру.
Я использую прокси-подход:
- Я набираю URL в браузере, и он перенаправляет меня в приложение, использующее ESB только в первый раз.
- затем я начинаю нормально взаимодействовать с приложением. но не через ESB.
это возможно с JBOSS-FUSE-ESB, или это неправильный инструмент для этой задачи?
<camelContext trace="true" id="blueprintContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="REQUEST">
<from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
<description/>
</from>
<to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&throwExceptionOnFailure=false" id="RealServer-IN"/>
</route>
любые предложения очень приветствуются.
1 ответ
Похоже, вы должны отправить обратно код состояния перенаправления HTTP с URL-адресом, который веб-браузер должен использовать для прямого взаимодействия с сервером без использования ESB.
Вы можете установить код состояния http и местоположение перенаправления, используя заголовки в сообщении Camel, например, после 1-го вызова.
<route id="REQUEST">
<from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
<description/>
</from>
<to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&throwExceptionOnFailure=false" id="RealServer-IN"/>
.. // add logic here to compute the new url and set that as Location header. And then set a status code 30x for redirect
<setHeader headerName="HttpStatusCode"><constant>300</constant></setHeader>
<setHeader headerName="Location"><constant>http:blabla</constant></setHeader>
</route>