メニュー制御機能では、ユーザメニューに対し運用状態を制御する機能を提供します。
この機能を利用するとメニュー単位で運用・停止の切り替えを行うことが可能となります。
5.7.1 メニュー制御機能における注意事項
メニュー制御機能はユーザメニューにのみ利用できる機能です。
管理メニューには利用できません。
メニュー制御機能では、停止設定されたメニューに対し新たにアクセスを行った場合のみ 該当機能を使用不可とします。
停止前に該当メニューへアクセス済みの場合、該当機能に対する制御は行いません。
制御の対象となるのは、イントラマートのメニュー画面からアクセスした場合(MenuServlet 経由でアクセス した場合)のみです。
対象画面のURLを指定しメニュー以外から直接アクセスした場合などには制御の対象にはなりません。
5.7.2 メニュー制御機能を利用した場合の画面遷移
図 98 メニュー制御機能を利用した場合の画面遷移図
Page 180 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.
5.7.3 メニュー制御マネージャ
メニュー制御マネージャでは、メニュー制御情報の管理を行うマネージャクラスです。
スクリプト開発モデルでは MenuControlManager
JAVAEE開発モデルでは jp.co.intra_mart.foundation.security.menu.control.MenuControlManager です。
5.7.3.1 メニュー制御情報操作
メニュー制御マネージャはメニュー制御設定に従い、メニュー制御操作モジュール(メニュー制御アクセッサ)から メニュー制御情報を操作します。
図 99 メニュー制御マネージャのアーキテクチャ
5.7.3.2 メニュー制御定義情報
メニュー制御操作モジュールの設定を行います。
設定ファイルは、ServerManager/conf/menu-control-config.xmlに記述します。
設定例を以下に示します。
この設定を元にメニュー制御マネージャはメニュー制御操作モジュールの実装を取得します。
<menu-control-config>
<access-config>
<reader-decorator>
<reader-decorator-class>SampleReaderDecorator</reader-decorator-class>
</reader-decorator>
<accessor>
<accessor-class>SampleMenuContorolAccessor</accessor-class>
<init-param>
<param-name>ParamName</param-name>
<param-value>ParamValue</param-value>
</init-param>
</accessor>
<query-writer-listener>
<writer-listener-class>SampleQueryWriterListener</writer-listener-class>
</query-writer-listener>
<post-writer-listener>
<writer-listener-class>SamplePostWriterListener</writer-listener-class>
</post-writer-listener>
</access-config>
<group-default>
<error-page-location client-type="mobile">・・・・・・・・・・・・</error-page-location>
<error-page-location>・・・・・・・・・・・・</error-page-location>
</group-default>
<group name="sample">
<error-page-location client-type="mobile">・・・・・・・・・・・・</error-page-location>
<error-page-location>・・・・・・・・・・・・</error-page-location>
</group>
</menu-control-config>
図 100 メニュー制御情報設定例
作成者株式会社 NTT データ イントラマート Page 181
<accessor> メニュー制御情報を取得、更新するモジュールを設定します。(複数指定可能)
<accessor-class> メニュー制御情報を取得するクラスを設定します。
MenuControlAccessorインタフェースを実装する必要があります。
<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)
このクラスが生成された時に一度だけこのパラメータで初期化します。
<reader-decorator> 取得したメニュー制御情報を修飾するモジュールを設定します。
(複数指定可能)
<reader-decorator-class> 取得したメニュー制御情報を修飾するクラスを設定します。
MenuControlDecoratorインタフェースを実装する必要があります。
<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)
このクラスが生成された時に一度だけこのパラメータで初期化します。
<query-writer-listener> メニュー制御情報を更新した後に呼ばれるモジュールを設定します。
(複数指定可能)
<writer-listener-class> メニュー制御情報を更新する前に呼ばれるクラスを設定します。
MenuControlQueryWriterListener インタフェースを実装する必要がありま
す。
<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)
このクラスが生成された時に一度だけこのパラメータで初期化します。
<post-writer-listener> メニュー制御情報を更新した後に呼ばれるモジュールを設定します。
(複数指定可能)
<writer-listener-class> メニュー制御情報を更新した後に呼ばれるクラスを設定します。
MenuControlPostWriterListener インタフェースを実装する必要がありま
す。
<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)
このクラスが生成された時に一度だけこのパラメータで初期化します。
<group-default> 各ログイングループのデフォルト設定を行います。(必須項目)
groupタグのname属性に設定されたログイングループはそのgroupタグ内の設
定が優先されます。
<error-page-location> エラー画面URLを設定します。
client-type 属性 :クライアントタイプが指定された値の場合のエラー画面
URLを設定します。
ログイングループ単位の設定を行います。(任意項目)
groupタグのname属性に設定されたログイングループはgroup-defaultタグ内の
設定よりもgroupタグ内の設定が優先されます。
<group>
name属性 : 対象となるログイングループIDを設定します。(必須項目)
<error-page-location> エラー画面URLを設定します。
client-type 属性 :クライアントタイプが指定された値の場合のエラー画面
URLを設定します。
Page 182 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.
5.7.4 メニュー制御モジュールインタフェース
jp.co.intra_mart.foundation.security.menu.control. MenuControlAccessorインタフェース メニュー制御情報の読み込み及び書き込みのインタフェースです。
5.7.5 メニュー制御情報操作実装モジュール
jp.co.intra_mart.foundation.security.menu.control.StandardMenuControlAccessorクラス メニュー制御情報を操作します。
標準のメニュー制御情報操作実装モジュールです。
図 101 StandardMenuContolAccessor
初期化パラメータはありません。
5.7.6 メニュー検証実装モジュール
jp.co.intra_mart.foundation.security.menu.control.MenuControlValidatorクラス
メニュー押下時に該当メニューが運用中であるかの検証を行うメニュー制御機能用検証クラスです。
メニュー制御マネージャの機能を利用して該当メニューが運用中かどうかの検証を行います。
標準で定義されている検証プログラムです。
この検証モジュールは、ServerManager /conf/menu-validator-config.xmlに設定されています。
メニュー制御機能を無効にする場合は、この検証クラスの<validator-enable>タグをfalseに設定する 必要があります。(デフォルトでは有効になっています。)
詳しくは4.10.1.1 検証モジュールをご覧ください。
図 102 MenuControlValidator
作成者株式会社 NTT データ イントラマート Page 183