開発Blog

iAPへアクセスするURLが複数ある場合のベースURLの設定方法

投稿日:2014-08-18 更新日:

ここでは、ベースURL をリクエスト情報を基に切り替えるための手順を
BaseUrlProvider のサンプル実装、Webサーバとの連携例と共に紹介します。
製品標準の設定では、テナント一つにつき、一つのベースURLのみが設定可能ですが、BaseUrlProvider インタフェースを実装することで、複数のベースURLを持たせることができます。
BaseUrlProvider は intra-mart Accel Platform 2014 Summer(Honoka) から導入されたインタフェースです。したがい、2014 Summer(Honoka) 以降で使用可能です。

注意事項

    1. IMBox の 通知情報, IM-Workflow のショートカットURL, IM-FileExchange のダウンロードURL、パスワードリマインダで複数のベースURLからのアクセスを実現したい場合、 メールテンプレートに以下のような形式で記述することで、任意のベースURL配下のURLにアクセスできます。

           %ご利用環境のベースURL固定文字% + [ショートカットURL置換文字列]

            詳細は以下の要件情報を参照してください。

           ・IM-Workflow ベースURLを含まない置換文字列を提供します(2015 Spring~)

           ・IMBOX IMBoxの通知情報に含まれるURLにベースURLを含まれないようにします(2014 Summer

           ・IM-FileExchange ベースURLを含まないURLを文字列置換可能にする(2015 Summer

           ・パスワードリマインダ ベースURLを含まないURLを文字列置換可能にする(2015 Summer

      BaseUrlProvider の実装

      リクエストヘッダーに応じて異なるベースURLを返却する BaseUrlProvide を実装します。

        1. 以下の内容のファイルを WEB-INF/classes/com/example/SampleBaseUrlProvider.java として保存します。

          リクエストヘッダー「x-com-example-base-url」値が「base1」の場合「http://192.168.1.1/imart」、
        リクエストヘッダー「x-com-example-base-url」値が「base2」の場合「http://192.168.1.1:81/imart」になるように実装しています。

      1. 以下の内容のファイルを WEB-INF/classes/META-INF/services/jp.co.intra_mart.foundation.platform.BaseUrlProvider として保存します。

      以降の手順は、Web サーバに Apache もしくは IIS を利用している想定で記述します。
      ご使用の Web サーバに合わせて、読み進めてください。

      Apache HTTP Server を使用している場合

      Apache の VirtualHost 機能を利用し、入り口を2つ作成します。
      2つの入り口に対して、mod_headers モジュールを利用し、リクエストヘッダー(x-com-example-base-url)をそれぞれ設定することでベースURLを切り替えます。

      前提条件

      モジュールの取得

      本ドキュメントでは以下の Apache モジュールを利用します。
      取得に当たっては、製品元のマニュアルを参照してください。

      • mod_proxy
      • mod_rewrite
      • mod_headers

      手順

      以降の手順では下記の環境を想定しています。

      iAPのコンテキストパス imart
      apacheのドキュメントルート /usr/local/apache/htdocs
      静的ファイルの展開フォルダ /usr/local/apache/htdocs/imart
      iAPのIPアドレス 192.168.1.1
      iAPのポート番号 8080
      apache(VirtualHost1)のIPアドレス 192.168.1.1
      apache(VirtualHost1)のポート番号 80
      apache(VirtualHost2)のIPアドレス 192.168.1.1
      apache(VirtualHost2)のポート番号 81
      1. <%APACHE_HOME%/conf/httpd.conf> ファイルを開きます。
      2. Dynamic Shared Object (DSO) Support エリアに以下の設定を追加またはコメントアウトを外してください。
      3. 80, 81 番ポートをリッスンするよう、以下の設定を追加または編集してください。
      4. 末尾に以下の設定を追加してください。
      5. Apache を再起動してください。
      6. 以下を確認してください。

      Internet Information Services(IIS) を使用している場合

      IIS の Web サイト機能を利用し、入り口を2つ作成します。
      2つの入り口に対して、URL Rewrite モジュールを利用し、リクエストヘッダー(x-com-example-base-url)をそれぞれ設定することでベースURLを切り替えます。

      前提条件

      • IIS の設定がされていること。

      設定手順はセットアップガイド-Internet Information Services(IIS)を参照してください。

      手順

      以降の手順では下記の環境を想定しています。

      iAP のコンテキストパス imart
      IIS のルート ディレクトリ C:\inetpub\wwwroot
      静的ファイルの展開フォルダ C:\imart
      IIS の IP アドレス(Web サイト1) 192.168.1.1
      IIS のポート番号(Web サイト1) 80
      IIS の IP アドレス(Web サイト2) 192.168.1.1
      IIS のポート番号(Web サイト2) 81
      1. から下記の設定を、


        以下の内容に置き換えます。


        これにより、 の内容は以下のようになります。
      2. 「サイト」を右クリックし、「Web サイトの追加」をクリックします。
        blog_1.png
      3. 以下のように設定し、「OK」をクリックします。
        サイト名 Another Web Site(何でも構いません)
        物理パス %SystemDrive%\inetpub\wwwroot
        種類 http
        IP アドレス 未使用の IP アドレスすべて
        ポート 81

      blog_2.png
      4. 「Another Web Site」を右クリックし、「仮想ディレクトリの追加」をクリックします。
      blog_3.png
      5. 以下のように設定し、「OK」をクリックします。

      エイリアス imart
      物理パス C:\imart

      blog_4.png
      6. 「Default Web Site」、「URL 書き換え」、「機能を開く」をクリックします。
      blog_5.png
      7. 「サーバ変数の表示」をクリックします。
      blog_6.png
      8. 「追加」をクリックします。
      blog_7.png
      9. 「サーバー変数名」に「HTTP_X_COM_EXAMPLE_BASE_URL」を入力し、「OK」をクリックします。
      blog_8.png
      10. 同様に「Another Web Site」の「許可されたサーバ変数」に「HTTP_X_COM_EXAMPLE_BASE_URL」を追加します。
      11. 「Another Web Site」、「URL 書き換え」、「機能を開く」をクリックします。
      blog_9.png
      12. 「ReverseProxyInboundStatic」、「ReverseProxyInboundDynamic1」、「ReverseProxyInboundDynamic2」が設定されていることを確認してください。
      blog_10
      存在しない場合、「Default Web Site」に存在する上記三つの URL 書き換え規則の設定を Another Web Site に追加してください。
      13. IIS を再起動してください。
      14. 以下を確認してください。

      -開発Blog

      執筆者:


      comment

      メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

      関連記事

      no image

      intra-mart WebPlatform/AppFramework Ver7.2について その4

      おかげ様で、intra-mart WebPlatform/AppFramework Ver7.2を無事リリースさせて頂きました。 今回は、BPM関連の機能追加について、ご紹介いたします。 BPMでは、 …

      no image

      DB周り便利ツール

      こんにちは。 そろばん3級、IM10級、現在、NTTデータビズインテグラルにて修行中の斎藤です。 IMのスキルが低いので、IMではなくオープンソースの便利ツールを紹介します。 「DBFlute」という …

      no image

      intra-mart Advent Calendar 2013 第2日:テナント環境セットアップって自作で追加できるんですよ!

      この記事は、intra-mart Advent Calendar 2013 第2日の記事です。 Advent Calendar ではあまり知られていないと思っている機能を紹介して行きたいと考えておりま …

      no image

      新ワークフロー移行ガイド

        ※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。   「新ワー …

      no image

      intra-mart Advent Calendar 2013 第15日:IM-Workflowの裏技

      この記事は、intra-mart Advent Calendar 2013 第15日の記事です。 日曜日なので、簡単な記事ですが、IM-Workflowの裏技をご紹介します。 ■未処理・処理済などの案 …

      まだデータがありません。

      RSSRSSRSSRSS