Есть ли способ ограничить, какие переменные сеанса экспортируются как HTTP-заголовки в потоке мулов, который включает HTTP-транспорт в середине?

Я сохраняю некоторые данные в виде переменных сеанса в потоке мулов, который включает в себя http-вызов внешней службы в середине потока. Мне нужны эти данные для последующей ветви логики потока, следовательно, переменная сеанса. Однако я не хочу, чтобы эти данные выходили с вызовом http в качестве заголовков http. Есть ли способ ограничить, какие переменные сеанса включаются в заголовки http в данном вызове?


person GarySharpe    schedule 10.10.2013    source источник


Ответы (3)


Если вы хотите решить, какое свойство сеанса распространять, вы можете написать собственный обработчик сеанса и внедрить его в свой http-коннектор примерно так:

<http:connector name="httpConnector">
   <service-overrides sessionHandler="your_session_handler" />  
</http:connector>

Пример пользовательского обработчика сеанса можно найти здесь

Тем не менее, я хотел бы повторить ответ Дэвида Доссо: переменные сеанса следует использовать редко, особенно зная, как Mule пропускает их по умолчанию. Если вы хотите что-то распространять, вы должны явно указать это как исходящее свойство, и мул будет распространять его.

person genjosanzo    schedule 11.10.2013

Используйте переменные потока: переменные сеанса следует использовать редко, особенно зная, что Mule пропускает их по умолчанию.

Переменные потока (также известные как свойства вызова) не должны зависеть от взаимодействия с конечной точкой, так задумано. Любое другое поведение будет ошибкой. Если ваши переменные не должны расширяться дальше потока, используйте переменные потока, а не переменные сеанса.

person David Dossot    schedule 10.10.2013
comment
Мое понимание переменных потока заключалось в том, что они являются синонимами свойств вызова и аналогичным образом удаляются, когда сообщение пересекает транспортный барьер. Действительно ли Mule хранит свойства вызова (также известные как переменные потока), не отправляет их вместе с исходящими вызовами, а сохраняет их в последующих компонентах данного потока? - person GarySharpe; 11.10.2013
comment
Просмотрел мой ответ с дополнительным объяснением. - person David Dossot; 11.10.2013
comment
@David Dossett, я полагаю, вы имеете в виду «использовать переменные потока, а не переменные сеанса». - person Rondo; 12.10.2013

переменные сеанса не отправляются через http-вызовы, только идентификатор сеанса отправляется через файл cookie (обычно)

если вам нужно передать какие-то данные через http-вызов на внешний домен - включите их в GET, например, т.к. куки не передаются

person Iłya Bursov    schedule 10.10.2013
comment
Вы говорите о переменных сеанса в контексте потоков Mule ESB? - person GarySharpe; 11.10.2013
comment
@GarySharpe нет, просто обычные переменные сеанса, которые используются во всех веб-приложениях, в надежде, что никто не изменит их значение на что-то другое. - person Iłya Bursov; 11.10.2013