リダイレクトされたURLにポート番号が付加されてしまう場合の対処法
BAWのサーバーをクラウド上のVMで構成し、WorkflowCenterやProcessPortalにアクセスした際に、正しく画面が表示されない経験をしたことがある人はいませんでしょうか?具体的には、https://xxxxxxxx/WorkflowCenterにアクセスした際に、https://xxxxxxx:9443/WorkflowCenterなどとポート番号が付加されたURLにリダイレクトされて表示されないということが起きます。この記事では、そんな場合の対処法について説明します。
どの様な場合にこの問題が起きるのか
この問題は、クラウド上のVMにアクセスする際にポートマッピングなどを行った場合やロードバランサーなどを構成した場合に発生します。具体的な動作例は以下の通りです。
IBMにはTechzoneと呼ばれる、社員やパートナー様が利用できるクラウド環境があり、様々なテンプレートから環境を払い出すことが可能です。その際、サーバー上のポートを、サービスポートとして公開することで、外部のネットワークからVM上の特定のポートにアクセスすることが可能です。例えば、BAWの場合には、デフォルトのHTTPSのポートである9443が、https://myhost:345567といったホストとポートにマッピングされ、ユーザーはブラウザからhttps://myhost:345567/WorkflowCenterにアクセスすることで、WorkflowCenterを表示することができるという事になります。
しかし、実際にアクセスしてみると正しく表示することができません。これはBAWのデフォルトの挙動が、リダイレクトする際に、ポート番号を付加した形で行うためです。つまり、https://myhost:9443/WorkflowCenter/login.jspなどにリダイレクトされるため、後続のリクエストが、サービスポートと異なるポートにアクセスしに行き、表示ができなくなってしまいます。(そのため、いくつかのテンプレートを使用する際には別途VPN経由でアクセスしたり、リモートデスクトップ経由でアクセスしているケースがあります。)
また、ngrokなどを用いて、ローカルPCにインストールしたBAWに対して外部からアクセスしたい場合にも問題になります。
(ngrokはローカルで動いているサービスを外部に公開するツールです。例えば、次のようなコマンドで、9443のポートを公開することが可能です。ngrok http https://localhost:9443)
ポート番号が付加されないようにしたい
ポート番号をつかないようにするにはどうしたらよいのか調べてみたところ、以下の情報を見つけました。
The process server redirects to an internal port when using a load balancer or proxy server with WebSphere Lombardi Edition or IBM Business Process Manager (BPM)
どうやら、Webコンテナーのカスタム・プロパティに以下の値を設定することで、ポート名を付与しない形でリダイレクトすることが可能なようです。
- Name: trusthostheaderport
Value: true
- Name: com.ibm.ws.webcontainer.extractHostHeaderPort
Value: true
設定方法
設定方法は以下の通りです。
- BAWの管理コンソール(https://localhost:9443/ibm/consoleなど)にアクセスします。
- WebSphere Application Server > サーバー名 > Webコンテナー > カスタム・プロパティーと進み、上記2つのプロパティーを追加します。
- サーバーを再起動します。
実際に設定してみたところ、見事問題は解決しました。
まとめ
BAWにアクセスした際に異なるポートにリダイレクトされて上手く表示されないようなケースは、Webコンテナーのカスタムプロパティを設定することで回避可能です。実際に遭遇した際に、そんな記事あったなと、この記事を見返していただければ幸いです。
#BusinessAutomationWorkflow(BAW)#baw