開発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 として保存します。

    1. リクエストヘッダー「x-com-example-base-url」値が「base1」の場合「http://192.168.1.1/imart」、
    1. リクエストヘッダー「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. web.config を以下のように変更します。
    変更前

    変更後

    これにより、web.config の内容は以下のようになります。

  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. 以下を確認してください。

【参考】さらに汎用的な方法について

・WebServer が IIS の場合はこちら
・WebServer が Apache の場合はこちら

-開発Blog

執筆者:


comment

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

関連記事

no image

業務スケルトン

こんにちは。開発本部の大西です。 きょうは、昨年11月末にリリースしたe Builder Application Developer/e Builder Version 7.1 Patch3に機能追加 …

no image

AccelPlatform向け業務スケルトンのリリース予定について

現状、AccelPlatfrom版のeBuilderで対応できていなくて、おまたせしております、AccelPlatform向け業務スケルトンについて、以下のようにリリースを予定しております。 おまたせ …

no image

第4回Solr勉強会 資料公開しました

開発本部の清(せい)です。 11/19に開催された、第4回Solr勉強会の資料です。 Solrを利用したIM-ContentsSearchの製品紹介と、コンサルティンググループ所属時に導入したお客様の …

no image

Formaボタンアイテムのクリック時に任意の処理を追加するには

今回のブログ記事では、ボタンアイテムのクリック時に呼び出されるアイテム固有の処理(データの登録・画面遷移など)の前に、入力値の加工など独自の業務処理をスクリプトとして実行する方法を紹介します。 &nb …

no image

intra-martの提供するセッション管理機能と他のアプリケーションサーバのセッション管理機能との違い

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