CookBook

複数BaseURLからそれぞれテナントを解決する方法

投稿日:2022-09-26 更新日:

ここでは、複数のBaseURLを持つシステムにおいて、BaseURL単位でテナントを解決する方法について説明します。

まず、複数のBaseURLを持つシステムの作成方法として、以下のいずれかを実装していること前提とします。

上記、CookBookを実装している場合、HTTP Header(x-com-base-url)には BaseURLが常に設定されます。

この x-com-base-url を用いたテナント解決の実装を行います。
なお、テナント解決の仕様については以下のリンクを参照してください。
https://document.intra-mart.jp/library/iap/public/setup/iap_setup_guide/texts/appendix/tenant_resolution/index.html

1.テナント解決用クラスを作成します。

このクラスは、プラグイン設定ファイル(後述)の BaseURL と TenantID を紐付けたパラメータを読み込みます。
また、すべての「テナントの環境情報」のベースURL 設定も読み込みます。

「テナントの環境情報」のベースURL
https://document.intra-mart.jp/library/iap/public/setup/iap_setup_guide/texts/tenant/setup_to_tenant_env.html


BaseURL からテナントを解決する優先順位は以下の通りです。
1、 テナント設定画面の BaseURL 設定
2、 プラグイン設定ファイル のパラメータ

【注意事項】
各設定を読み込むのは、このクラスが初期化されたタイミングとなるため、 各テナント設定画面の BaseURL を設定および変更した場合は、アプリケーションサーバの再起動が行われるまで反映されません。
また、分散環境の場合、全てのアプリケーションサーバの再起動が必要です。

com/example/HttpHeaderTenantIdResolver.java

2 .プラグイン設定ファイルの作成します。

WEB-INF/plugin/com.example.http.header.tenant.resolver_1.0.0/plugin.xml を作成します。


<param-name> には BaseURL、<param-value> には紐付けたい TenantID を記述します。


なお、この設定の値は、各テナントの設定画面のBaseURLに記述がない場合のみ使われます。

plugin.xml

これらの実装を行うことで、アクセスするBaseURL毎にテナントを解決することが可能です。

-CookBook
-,

執筆者:


comment

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

関連記事

ワークフローの案件削除時にBIS/Formaの関連データも削除する方法

このCookBookでは、ワークフローの案件削除時にBIS/Formaの関連データも併せて削除する方法について紹介しています。 BIS/Formaで作成したワークフローには、機能ごとに個別で管理するト …

no image

フォーム内の入力値を案件名に自動入力する方法

このCookbookでは、IM-FormaDesignerで作成した申請画面から入力内容を案件名に設定する方法を紹介します。 この方法を利用するとIM-FormaDesignerの入力内容をIM-Wo …

スプレッドシートのバインディングデータを別途テーブルに出力する方法

スプレッドシートのJsonデータとバインディングデータは、Formaヘッダーテーブルにバイナリカラムで格納されます。 Formaヘッダーテーブルに格納されたスプレッドシートデータは、登録データ情報管理 …

no image

Docker Swarm を利用して Resin のクラスタリングを構築する。

この CookBook では、Docker Swarm を利用して Resin のクラスタリングを構築する手順について紹介しています。 Docker Swarm を利用することで、複数マシンにまたがっ …

no image

ViewCreatorでカレントの組織コードや会社コードを取得する動的パラメータの作り方

このCookBookでは、カレントの組織コードや会社コードを取得するViewCreatorの動的パラメータの作成方法についてご紹介します。 動的パラメータについての詳細は下記のドキュメントを参照してく …