Я сохраняю некоторые данные в виде переменных сеанса в потоке мулов, который включает в себя http-вызов внешней службы в середине потока. Мне нужны эти данные для последующей ветви логики потока, следовательно, переменная сеанса. Однако я не хочу, чтобы эти данные выходили с вызовом http в качестве заголовков http. Есть ли способ ограничить, какие переменные сеанса включаются в заголовки http в данном вызове?
Есть ли способ ограничить, какие переменные сеанса экспортируются как HTTP-заголовки в потоке мулов, который включает HTTP-транспорт в середине?
Ответы (3)
Если вы хотите решить, какое свойство сеанса распространять, вы можете написать собственный обработчик сеанса и внедрить его в свой http-коннектор примерно так:
<http:connector name="httpConnector">
<service-overrides sessionHandler="your_session_handler" />
</http:connector>
Пример пользовательского обработчика сеанса можно найти здесь
Тем не менее, я хотел бы повторить ответ Дэвида Доссо: переменные сеанса следует использовать редко, особенно зная, как Mule пропускает их по умолчанию. Если вы хотите что-то распространять, вы должны явно указать это как исходящее свойство, и мул будет распространять его.
Используйте переменные потока: переменные сеанса следует использовать редко, особенно зная, что Mule пропускает их по умолчанию.
Переменные потока (также известные как свойства вызова) не должны зависеть от взаимодействия с конечной точкой, так задумано. Любое другое поведение будет ошибкой. Если ваши переменные не должны расширяться дальше потока, используйте переменные потока, а не переменные сеанса.
переменные сеанса не отправляются через http-вызовы, только идентификатор сеанса отправляется через файл cookie (обычно)
если вам нужно передать какие-то данные через http-вызов на внешний домен - включите их в GET, например, т.к. куки не передаются