9.5.3. 特記事項¶
9.5.3.1. IM-Workflow バージョン8.0.2 における改善¶
IM-Workflow バージョン8.0.2 から、連続処理/連続確認中の画面遷移仕様を改善しています。
IM-Workflow バージョン8.0.1 までの動作仕様
- 処理完了後の遷移先指定は無視されます。
- 処理完了後の遷移先指定の有無に関わらず、処理完了後は次の案件のユーザコンテンツが表示されます。
IM-Workflow バージョン8.0.2 以降の動作仕様
- 処理完了後の遷移先指定が行われている場合、処理完了後は指定された画面に遷移します。
※ IM-Workflow スマートフォン では、連続処理/連続確認機能が存在しないため、上記を意識する必要はありません。
9.5.3.2. 意図しないURLに対するバリデーション¶
「imwNextPagePath」には、ルーティング設定によってマッピングされたURLが指定されることを前提としていますが、絶対URLを指定された場合でも動作します。これは処理完了後の画面遷移先として IM-Workflow と連携する外部システムのURLも設定可能とするためで、 IM-Workflow Ver.7.2.x との互換性を保つための仕様です。「workflowOpenPage」タグライブラリ、および「spWorkflowOpenPage」タグライブラリでは、明示的に外部システム等のURLを指定される可能性のある「imwNextPagePath」と、「imwNextApplicationId」および「imwNextServiceId」に対して、テナント単位で設定が可能な「セーフURLリスト」に存在するかチェックを行います。チェックには、intra-mart Accel Platform が提供するAPI 「SafeUrlManager#isSafe(String url)」 を使用しています。ワークフローエンジンとしては上述の通りURLバリデーションチェックを行っていますが、同様のチェックがユーザコンテンツで必要となる場合があります。たとえば、ユーザコンテンツでの画面遷移処理(例:「imwCallOriginalPagePath」を利用して一覧へ戻る)における遷移先パスが何らかのタイミング(ユーザコンテンツ間での画面遷移の最中など)で意図しないURLに改ざんされた場合、改ざん後のURLへの遷移を防止するためには、URLバリデーションチェック処理を独自に実装していただく必要があります。チェックには 「SafeUrlManager#isSafe(String url)」 が利用可能です。APIの詳細については 「 APIドキュメント 」 を参照してください。また、セーフURLの設定方法については 「 テナント管理者操作ガイド 」 を参照してください。「SafeUrlManager#isSafe(String url)」を利用したURLバリデーションチェックのサンプル実装(スクリプト開発モデル)を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var safeUrlManager = new SafeUrlManager(); var result = safeUrlManager.isSafe(url); if (result.error) { // URLチェック実行に失敗した場合の処理 Transfer.toErrorPage( { "title" : "URL バリデーションエラー", "message" : "URLチェック実行に失敗しました。管理者に連絡してください。" } ); } if (!result.data) { // 指定したURLがセーフURLリストに存在しない場合の処理 Transfer.toErrorPage( { "title" : "URL バリデーションエラー", "message" : "安全ではないURLが指定されています。管理者に連絡してください。" } ); }