本稿では、グループ関連のメソッドを実装する。
- 「JdbcSimpleUserDAO」において、グループ操作に関するメソッドとしては以下のメソッドがある。
---------------------------------------------------------------------------
public Set<String> getMembers(String groupName, String membershipIdAttributeName) {
return Collections.EMPTY_SET;
}
public Set<String> getMemberships(String userName, String membershipIdAttributeName) {
return Collections.EMPTY_SET;
}
public void deleteGroup(String groupName, String membershipIdAttributeName) {
}
public void createGroup(String groupName, String membershipIdAttributeName){
}
public void deleteMembersFromGroup(Set<String> members, String groupName, String membershipIdAttributeName) {
}
public void addMembersToGroup(Set<String> members, String groupName, String membershipIdAttributeName) {
}
public Map<String, Map<String, Set<String>>> searchForGroups(
String membershipIdAttributeName, int limit, String idPattern,
Set<String> attributesToFetch, String filterOperand,
Map<String, Set<String>> avPairs) {
return Collections.EMPTY_MAP;
}
public Map<String, Set<String>> getGroupAttributes(String groupName,
String membershipIdAttributeName, Set<String> attributesToFetch) {
return Collections.EMPTY_MAP;
}
---------------------------------------------------------------------------
- グループおよびユーザのテーブルにおける関係は、以下を想定する。
<テーブル作成コマンド>
mysql> create table groups(group_name varchar(50), cn varchar(50), primary key(g
roup_name));
Query OK, 0 rows affected (0.04 sec)
mysql> create table usergroupmapping(group_name varchar(50), uid varchar(50), pr
imary key(group_name, uid), foreign key(uid) references users(uid) ON UPDATE CAS
CADE ON DELETE CASCADE, foreign key(group_name) references groups(group_name) ON UPDATE CASCADE ON DELETE CASCADE) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
<開発内容>
- 既存の「com.sun.identity.idm.plugins.database.JdbcSimpleUserDAO」クラスを継承し、「JdbcUserGrourpDAO」クラスを新規に作成する。
- 開発環境はEclipseを使用する。Eclipseには、予めamserver.jarおよびopensso-sharedlib.jarへのクラスパスを通りしておく。
①Eclipse環境において、以下のような「JdbcUserGrourpDAO」クラスを作成する。
【ソース公開先】
https://docs.google.com/file/d/0Bwo1aq16K4DXVUxBZTdsR3VEQzA/edit
②Explise上でjarファイルを作成し、以下の格納場所に配備する。
(またはWebサーバ上のクラスパスに設定する)
D:\glassfish\domains\domain1\applications\j2ee-modules\opensso\WEB-INF\lib\customdbdao.jar
③glassfishを再起動する。
④OpenAMの管理コンソールにログインする。「アクセス制御」タブ→「/(最上位のレルム)」→「データストア」タブを押下する。
⑤データベースのリポジトリを選択し、「データベースのデータアクセスオブジェクトプラグインのクラス名:」にカスタムしたDAOクラスを設定する。「保存」ボタンを押下する。
⑥glassfishを再起動する。
⑦OpenAMの管理コンソール上からグループを操作(作成・ユーザの追加/削除)し、正常に動作することを確認する。
0 件のコメント:
コメントを投稿