10. 互換TIPS¶
intra-mart Web Platform で提供されていた同等の機能を実現する方法やその他互換にかかわる開発テクニックをご紹介します。
10.1. AccessControllerと同等の機能を実現する¶
intra-mart Web Platform で提供されていたAccessControllerと同等の機能を実現する方法について解説します。認可リソースと<imAuthz>タグを用いて実現します。
10.1.1. アクセス権を設定するための認可リソースの作成¶
「サイトマップ」-「テナント管理」- 「認可」をクリックします。
「権限設定を開始する」をクリックします。
画面左側「リソース」の「画面・処理」をポイントし、右に表示されるアイコンをクリックします。「リソース詳細」ダイアログが表示されます。AccessControllerの同等機能で利用する認可リソースグループを作成します。
「リソース詳細」ダイアログで、 「配下にリソースを新規作成」をクリックします。
「リソース設定」ダイアログで、 認可リソースグループを作成します。リソースURIは入力する必要はありません。作成した認可リソースグループ(アクセスコントローラ)にアクセス権のキーとなる認可リソースを作成します。
作成した認可リソースグループのリソース詳細を表示します。
「リソース詳細」ダイアログで、 「配下にリソースを新規作成」をクリックします。
「リソース設定」ダイアログで、 認可リソースを作成します。リソースURIには service://******** 形式で記述してください。リソースURIは画面にて表示・非表示制御用のアクセス権のキーとして利用します。注意
- リソースURIは システム一意である必要があります。
- リソースURIは service:// の第一階層目はオリジナルの ID にする必要があります。 (例) access-ctrl など
作成した認可リソースに対して、必要な権限を設定します。
「権限設定を終了する」をクリックします。
コラム
画面で利用する 認可リソースは、既存のものを利用していただいても構いません。表示・非表示制御として、妥当である認可リソースであれば、共有して利用できます。ただし、画面作成時に利用する<imAuthz>タグで、利用する認可リソースのアクション(action属性)を適切に指定してください。「画面・処理」でのアクション(実行)は、 execute となります。
10.1.2. 認可リソースで表示制御を行う画面の作成¶
認可リソースのアクセス権に基づいて、表示・非表示を行うタグを画面に記述します。アクセス権判定を行う認可リソースは、先ほど作成した service://access-ctrl/permission01 を利用します。
スクリプト開発モデル
<imart type="imAuthz" uri="service://access-ctrl/permission01" action="execute"> アクセス権があるユーザに表示されるエリアです。 </imart> <imart type="imAuthz" uri="service://access-ctrl/permission01" action="execute" negative> アクセス権がないユーザに表示されるエリアです。 </imart>Java開発モデル
<%@ taglib prefix="imTenant" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %> <imTenant:imAuthz uri="service://access-ctrl/permission01" action="execute"> アクセス権があるユーザに表示されるエリアです。 </imTenant:imAuthz> <imTenant:imAuthz uri="service://access-ctrl/permission01" action="execute" negative="<%= Boolean.TRUE %>"> アクセス権がないユーザに表示されるエリアです。 </imTenant:imAuthz>注意
<imAuthz>タグのnegative属性は 2013 Autumn以降利用可能となります。
10.2. intra-mart Web Platform で作成されたページを表示する¶
intra-mart Web Platformで作成されたページ(以下、互換ページと称します)を表示する方法を解説します。互換ページは、 intra-mart Accel Platform のテーマの仕組みに対応していません。また、 intra-mart Accel Platform の認可についても考慮された作りにはなっていません。互換ページを intra-mart Accel Platform で表示させるためには、表示用途によって以下の修正および設定が必要となります。
対象となる互換ページすべてに対して、テーマを適用しない設定が必要です。 メニューに登録する互換ページはルーティングテーブルへの登録が必要です。ルーティングテーブルへ登録された互換ページは intra-mart Accel Platform の認可機構が利用できます。また、ルーティングテーブルへ登録したURLに対しても、テーマを適用しない設定が必要です。 互換ページをメニューに登録する場合は、ルーティングテーブルへの登録したURLを指定し、かつiframeに表示するように登録する必要があります。これは、 intra-mart Accel Platform のテーマを利用しつつ、互換ページに対してはテーマを適用しないようにするために必要となります。
10.2.1. 互換ページ対してテーマを適用しないようにする¶
互換ページは、 intra-mart Accel Platform のテーマの仕組みに対応していないので、テーマを適用しない設定が必要となります。
スクリプト開発モデル
IM-Juggling では、プロジェクトルート/conf/theme-no-theme-path-configに {任意のファイル名}.xml でファイルを作成します。スクリプト開発のパスを指定する場合は、先頭に ‘ / ‘ (スラッシュ)を付けずに指定します。(例) sample/v72/main.js に対する設定は <path>sample/v72/main</path> となります。また、設定に正規表現が利用できます。(例) sample/v72 配下すべてのjsに対しての設定は <path regex=”true” >sample2/v72/.*</path> となります。<?xml version="1.0" encoding="UTF-8"?> <theme-no-theme-path-config xmlns="http://www.intra-mart.jp/theme/theme-no-theme-path-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/theme/theme-no-theme-path-config theme-no-theme-path-config.xsd "> <path>sample/v72/main</path> <path regex="true" >sample2/v72/.*</path> </theme-no-theme-path-config>Java開発モデル (IM-JavaEE Frameworkを利用したページ)
IM-Juggling では、プロジェクトルート/conf/theme-no-theme-path-configに {任意のファイル名}.xml でファイルを作成します。Java開発のパスを指定する場合は、先頭に ‘ / ‘ (スラッシュ)を付けた状態で指定します。(例) sample-main.service に対する設定は <path>/sample-main.service</path> となります。また、設定に正規表現が利用できます。(例) sample2-***.service のような、アプリケーションIDがsample2のすべてのページに対しての設定は <path regex=”true” >/sample2\-.+\.service</path> となります。<?xml version="1.0" encoding="UTF-8"?> <theme-no-theme-path-config xmlns="http://www.intra-mart.jp/theme/theme-no-theme-path-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/theme/theme-no-theme-path-config theme-no-theme-path-config.xsd "> <path>/sample-main.service</path> <path regex="true" >/sample2\-.+\.service</path> </theme-no-theme-path-config>注意
テーマ設定ファイルの<path>タグのregex属性は 2013 Summer以降利用可能となります。
コラム
warファイルに直接作成する場合は、WEB-INF/conf配下の theme-no-theme-path-config ディレクトリにファイルを作成します。テーマを適用しない設定ファイルの詳細は「設定ファイルリファレンス テーマの適用方法設定 NoThemeBuilder」を参照してください。
10.2.2. 互換ページをメニューに登録できるようにする¶
互換ページをメニューに登録するためには、ルーティングテーブルへの登録が必要となります。
スクリプト開発モデル
IM-Juggling では、プロジェクトルート/conf/routing-jssp-configに {任意のファイル名}.xml でファイルを作成します。スクリプト開発のパスを指定する場合は、先頭に ‘ / ‘ (スラッシュ)を付けた状態で指定します。(例) sample/v72/main.js に対する設定は <file-mapping path=”/sample_v72_main” page=”sample/v72/main”> となります。‘ / ‘ (スラッシュ)を ‘ _ ‘ (アンダースコア)に変更して登録していますが、これは、互換ページがコンテキストパスをベースに表示されるように作成されているため、 intra-mart Accel Platform においてもコンテキストパスをベースに表示されるようにしています。また、認可リソースの登録が必要です。認可リソースの登録は「テナント管理」-「認可」の画面より作成します。以下の例では service://sample/main というリソースと紐付をおこないます。<?xml version="1.0" encoding="UTF-8"?> <routing-jssp-config xmlns="http://www.intra-mart.jp/router/routing-jssp-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd "> <file-mapping path="/sample_v72_main" page="sample/v72/main"> <authz uri="service://sample/main" action="execute" /> </file-mapping> </routing-jssp-config>コラム
sample/v72/main.js に対する設定を <file-mapping path=”/sample/v72/main” page=”sample/v72/main”> といったように‘ / ‘ (スラッシュ)で区切った設定を行う場合は、動作するベースパスが異なるため、対象のページに対して以下のコードを追加する必要があります。<html> <head> <title></title> <IMART type="include" page="im_compatible_core/parts/base_href"></IMART> <IMART type="imDesignCss"></IMART> …コラム
スクリプト開発でのルーティング設定ファイルの詳細は「設定ファイルリファレンス スクリプト開発モデルルーティング設定」を参照してください。さらに、ルーティングテーブルに登録したURLに対しても、テーマが適用されないようにします。IM-Juggling では、プロジェクトルート/conf/theme-no-theme-path-configに {任意のファイル名}.xml でファイルを作成します。ルーティングテーブルに登録したURLを指定する場合は、先頭に ‘ / ‘ (スラッシュ)を付けた状態で指定します。(例) /sample_v72_main に対する設定は <path>/sample_v72_main</path> となります。<?xml version="1.0" encoding="UTF-8"?> <theme-no-theme-path-config xmlns="http://www.intra-mart.jp/theme/theme-no-theme-path-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/theme/theme-no-theme-path-config theme-no-theme-path-config.xsd "> <path>/sample_v72_main</path> </theme-no-theme-path-config>Java開発モデル (IM-JavaEE Frameworkを利用したページ)
IM-Juggling では、プロジェクトルート/conf/routing-service-configに {任意のファイル名}.xml でファイルを作成します。Java開発のパスを指定する場合は、先頭に ‘ / ‘ (スラッシュ)を付けた状態で指定します。(例) sample-main.service に対する設定は <service-mapping path=”/sample-main.service” application=”sample” service=”main”> となります。また、認可リソースの登録が必要です。認可リソースの登録は「サイトマップ」-「テナント管理」-「認可」の画面より作成します。以下の例では service://sample/main というリソースを登録します。<?xml version="1.0" encoding="UTF-8"?> <routing-service-config xmlns="http://www.intra-mart.jp/router/routing-service-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-service-config routing-service-config.xsd "> <service-mapping path="/sample-main.service" application="sample" service="main"> <authz uri="service://sample/main" action="execute" /> </service-mapping> </routing-service-config>コラム
java開発でのルーティング設定ファイルの詳細は「設定ファイルリファレンス IM-JavaEE Frameworkルーティング設定」を参照してください。コラム
warファイルに直接作成する場合は、WEB-INF/conf配下のrouting-jssp-config または routing-service-config ディレクトリにファイルを作成します。
10.2.3. 互換ページをメニューに登録する¶
互換ページをメニューに登録するためには、「互換ページをメニューに登録できるようにする」で行ったURLを指定する必要があります。IFRAME表示にチェックします。