В Spring Web Flow мне нужно перенаправить пользователя на внешний URL. Я делаю это, используя view-state
с атрибутом view="externalRedirect:https://..."
. Этот шаг не является последним в потоке, поэтому внешний сайт должен знать, где повторно вводить поток.
Поэтому мне нужно предсказать следующие состояния просмотра flowExecutionUrl
в пределах action-state
, который подготавливает внешний услуга до того, как вышеупомянутый view-state
введен. Невозможно выполнить подготовку в состоянии просмотра, так как это сложный процесс.
Я не видел способа получить URL-адрес следующих состояний просмотра из коробки. Было бы легко вернуть следующий идентификатор в подклассе SimpleFlowExecutionSnapshotGroup
, но настроить DefaultFlowExecutionRepository
для его использования непростая задача, так как создание было зашито. DefaultFlowExecutionRepository
также предназначен для расширения, но использование расширенного класса тоже не простая задача. FlowExecutorBuilder
жестко запрограммировал его создание, и замена реализации привела бы к сильно дублированному (еще хуже: скопированному) коду.
Есть ли более простой способ повторно войти в поток после перенаправления пользователя на внешний URL-адрес?