はじめに
CAIプロセスのデプロイ先をSecure Agentとした場合、HTTP・HTTPSの両プロトコルにてHTTPリクエストを実行できます。この記事では、実行されたCAIプロセスがいずれのプロトコルとして実行されたかを取得する実装を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
実行されたプロトコルの取得
CAIプロセス実行時のHeader情報から、どのポートを利用しているかを確認できます。規定値では各プロトコルが利用するポートは次のとおりです。
- 7080 ... HTTP実行
- 7443 ... HTTPS実行
次の手順では、Header情報を取得するCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-pca-getHttpProtocol とする
- 匿名アクセス を許可する
- Secure Agentグループ にデプロイする
-
出力フィールド output を タイプ=テキスト として定義します。
-
割り当てステップ を追加して フィールドの追加 から出力フィールドとして定義した output を選択します。
-
フィールド一覧に output フィールドの設定が追加されているはずです。 output フィールドに 計算式 として
request:getHeader("host")
を指定します。
CAIプロセスの実行
確認したサービスURLを利用して、HTTP/HTTPS実行時の動作より、ポート番号が得られていることがわかります。ここで得られたポート番号を利用して実行時のプロトコル(HTTP/HTTPS)を判断できます。
// curl コマンド
curl http://localhost:7080/process-engine/public/rt/recipe-pca-getHttpProtocol
// 実行結果
{"output":"localhost:7080"}
// curl コマンド
curl -k https://localhost:7443/process-engine/public/rt/recipe-pca-getHttpProtocol
// 実行結果
{"output":"localhost:7443"}
たとえば、HTTP実行された場合には、ディシジョンステップを使って処理を行わないように制御できます。