Cocoon Cinclude из другого трубопровода

У меня есть установка Cocoon с конвейером, преобразователь которого содержит что-то вроде этого:

<cinclude:include src="https://my-app/get-some-data" />

Теперь включенный там URL-адрес фактически получен от Cocoon, и у меня есть сертификат TLS, которому Java не доверяет, поэтому я получаю ошибки о путях сертификации PKI. Я могу "легко" решить эту проблему (и уже некоторое время), указав хранилище доверенных сертификатов для процесса JVM, в котором содержится сертификат TLS моего сервера.

Я хотел бы прекратить делать это по крайней мере по двум причинам:

  1. Когда мой сертификат сервера требует обновления, я должен обновить свое хранилище доверенных сертификатов и отослать Cocoon
  2. Это может быть более эффективным (без обратной петли HTTP-запроса, без TLS-рукопожатия и т. Д.)

Cinclude понимает относительные пути Кокон?

Я ищу что-то вроде этого:

<cinclude:include src="cocoon://get-some-data" />

Существует ли что-то подобное?

1 ответ

Решение

Да, вы можете сделать именно это. Желаемый синтаксис уже под вопросом, с небольшой модификацией. Например, скажем, у нас есть это match настроен в sitemap:

<map:match pattern="get-some-data">
   ...
</map:match>

<map:match pattern="primary-request">
  ...
  <map:transform type="cinclude" />
  ..
</map:match>

С помощью <cinclude> в конвейере "первичного запроса" для включения из другого конвейера просто требуется следующее:

<cinclude:include src="cocoon:/get-some-data?parameters" />

Эта особенность будет работать только для конвейеров в пределах одной и той же карты сайта. Если вам нужно сослаться на конвейеры в других файлах сайта, это требует немного большей настройки - но это выходит за рамки вопроса, здесь.

Другие вопросы по тегам