パーミッションセレクタは、絞込条件を元に、絞り込まれた情報を提供する機能です。
パーミッションセレクタは、1つのカテゴリに属します。
1つのカテゴリには複数のパーミッションセレクタを含めることが可能です。
絞込みは 1 つのカテゴリを選択して行います。カテゴリに複数のパーミッションセレクタがある場合は、各パーミッ ションセレクタで絞り込まれた情報をマージして結果を返却します。
パーミッションセレクタの設定はサーバマネージャ/conf/access-security.xmlで設定します。
図 7 パーミッションセレクタの概要
2.6.1 パーミッションセレクタの設定
パーミッションセレクタは、設定ファイルに記述します。
設定ファイルは、サーバマネージャ/conf/access-security.xmlです。
<access-security>
<permission-config>
<permission-group>
<category>Category</category>
<permission-selector>
<permission-selector-class>PermissionSelectorClass</permission-selector-class>
<init-param>
<param-name>ParamName</param-name>
<param-value>ParamValue</param-value>
</init-param>
</permission-selector>
</permission-group>
</permission-config>
</access-security>
タグの説明
<permission-group> パーミッションセレクタをグループ化するタグです。(複数指定可能)
このタグ内、カテゴリ名と複数のパーミッションセレクタを設定します。
<category> このパーミッショングループにカテゴリ名設定します。permission-config タグ内 でユニークなIDを指定します。
<permission-selector> パーミッションセレクタの情報を設定します。(複数設定可能)
<permission-selector-class> パーミッションセレクタの実装クラスをを設定します。
PermissionSelectorインタフェースを実装する必要があります。
<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)
このクラスが生成された時に一度だけこのパラメータで初期化しま す。
作成者株式会社 NTT データ イントラマート Page 23
2.6.2 パーミッションセレクタの呼出し
パーミッションセレクタの呼出しは以下ように行います。
スクリプト開発モデル
PermissionManager.doSelectionメソッドを使用して絞込みを行います。
var manager = new PermissionManager(“default”);
var results = manager.doSelection(“selector1”,“input”);
上記の例では、ログイングループID(default)で, ‘input’を絞込条件にカテゴリ‘selector1’を指定して、絞込みを行 います。
JavaEE開発モデル
jp.co.intra_mart.foundation.security.permission.PermissionManagerを用いて、絞込みを行います。
PermissionManager manager = new PermissionManager (“default”);
Collection results = manager.doSelection(“selector1”,“input”);
上記の例では、ログイングループID(default)で, ‘input’を絞込条件にカテゴリ‘selector1’を指定して、絞込みを行 います。
2.6.3 パーミッションセレクタの返却値について
JavaEE開発モデルでは、オブジェクトのCollection型で返却します。
スクリプト開発モデルでは、Collection内の各オブジェトをJavaBeansとみなし、そのプロパティをJavaScriptオブジ ェクトのプロパティに変換して、Array型で返却します。
2.6.4 パーミッションセレクタのインタフェース
パッケージはjp.co.intra_mart.foundation.security.permissionになります。
PermissionSelectorインタフェース
パーミッションセレクタの実装クラスに実装するインタフェース。
Page 24 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.
2.6.5 パーミッションセレクタの実装クラス
jp.co.intra_mart.foundation.security.permission.AdminMenuPermissionSelectorクラス
ログイングループを絞込条件にして、ログイングループ管理者に表示可能な管理メニューの一覧を返却 するクラスです。
第二引数には、ログイングループIDを指定します。
intra-mart WebPlatform標準の実装クラスです。
カテゴリはgroup-menu
AdminMenuManager. getMenuTreeメソッド内部での管理メニュー絞込みに使用しています。
図 8 AdminMenuPermissionSelectorクラス
呼び出し方法
PermissionManager permissionManager = new PermissionManager(groupId);
Collection array = permissionManager.doSelection("group-menu", groupId);
String[] menuIds = (String[]) array.toArray(new String[array.size()]);
jp.co.intra_mart.foundation.security.permission.MenuPermissionSelectorクラス ユーザ情報を絞込条件にして、ユーザに表示可能なメニューの一覧を返却するクラスです。
第二引数には、ユーザIDを指定します。
intra-mart WebPlatform標準の実装クラスです。
カテゴリはaccount-menu
MenuManager. getAccountMenuTreeメソッド内部でのメニュー絞込みに使用しています。
図 9 MenuPermissionSelectorクラス
呼び出し方法
PermissionManager permissionManager = new PermissionManager(this.groupId);
String infos[] = new String[]{userId,strDate};
Collection array = permissionManager.doSelection("account-menu", infos);
String[] menuIds = (String[]) array.toArray(new String[array.size()]);
作成者株式会社 NTT データ イントラマート Page 25 ユーザのアカウントロールと日付からからすべてのロール(サブロールも含む)を返却するクラスです。
現在の日付で取得する場合は、第二引数にユーザIDを指定します。
指定日付で取得する場合は、第二引数は配列として指定し、{ユーザ ID、日付(文字列型)}を指定しま す。
日付(文字列型)のフォーマットは‘yyyy/mm/dd|hh:MM:ss’です。
intra-mart WebPlatform標準の実装クラスです。(Ver 6.1以降)
カテゴリはaccount-role
AccountManager.getRoleIdsメソッド内部でのロールの取得に使用しています。
図 10 AccountRolePermissionSelectorクラス
呼び出し方法
PermissionManager permissionManager = new PermissionManager(this.groupId);
String infos[] = new String[]{userId,strDate};
Collection array = permissionManager.doSelection("account-role",infos);
String[] roles = (String[]) array.toArray(new String[array.size()]);
jp.co.intra_mart.foundation.security.permission.AccessControllerPermissionSelectorクラス ユーザ情報を利用して、有効なアクセスコントローラの一覧を返却するクラスです。
現在の日付で取得する場合は、第二引数にユーザIDを指定します。
指定日付で取得する場合は、第二引数は配列として指定し、{ユーザ ID、日付(文字列型)}を指定しま す。
日付(文字列型)のフォーマットは‘yyyy/mm/dd|hh:MM:ss’です。
intra-mart WebPlatform標準の実装クラスです。(Ver 6.1以降)
カテゴリはaccess-controller
AccessControllerManager.verifyメソッド内部での権限チェックに使用しています。
図 11 AccessControllerPermissionSelectorクラス
呼び出し方法
PermissionManager permissionManager = new PermissionManager(this.groupId);
String infos[] = new String[]{userId,strDate};
Collection array = permissionManager.doSelection("access-controller",infos);
String[] controllers = (String[]) array.toArray(new String[array.size()]);
Page 26 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.