[operation:2168] Re: Hudsonのテスト環境試用のお願い

Jun Futagawa [E-MAIL ADDRESS DELETED]
2008年 11月 10日 (月) 03:23:48 JST


川口さん

ふたがわです。

#2256 の修正ありがとうございます。
trunkを試しながら手元で原因を探してみたところ、
hudson.security.DeferredCreationLdapAuthoritiesPopulator を
直すことで意図したように動くことが判りました。

一応 LDAPBindSecurityRealm.groovy で個別に指定すれば
ソースを直さなくても動く作りになっているようですが、一般的な
ディレクトリサーバのツリーとグループ指定の使われ方を考え、
次のようにデフォルト値の修正を検討していただけると嬉しいです。
(Issuesに登録すべきかもしれませんが、日本語で書けるこちらで(^^;;;)

# ログイン成功したユーザにデフォルトで割り当てるグループとして
# authenticated が割り当てられるようにします
- private String defaultRole = "";
+ private String defaultRole = "authenticated";

# cn=group1,ou=Unit1,ou=Groups,dc=example,dc=org
# といった2レベル以上のグループを検出できるようにします
# これは今回の問題とは直接関係しませんが LDAPBindSecurityRealm.groovy で
# userSearch では true になっているので揃えるためです
# その意味では LDAPBindSecurityRealm.groovy へ書くべきかもしれません
- private boolean searchSubtree = false;
+ private boolean searchSubtree = true;

# 一般的にこれらの属性は下記の使い方をするようです
# member, uniqueMember には 完全DN: uid=user1,ou=Users,dc=example,dc=org
# memberUid には uid のみ: user1({1}でちょうどよく username のみが入るようです)
- private String groupSearchFilter =
		"(| (member={0}) (uniqueMember={0}) (memberUid={0}))";
+ private String groupSearchFilter =
		"(| (member={0}) (uniqueMember={0}) (memberUid={1}))";

# ROLE_group1 となってしまうので余計な ROLE_ を取り除きます
- private String rolePrefix = "ROLE_";
+ private String rolePrefix = "";

# GROUP1 となってしまうので元々の文字列に任せるようにします
# anonymous と authenticated に併せるためにも
- private boolean convertToUpperCase = true;
+ private boolean convertToUpperCase = false;

これで、下記の行列による権限設定がそれぞれ意図するように動くことを確認しました。

> authenticated: (ログインユーザ全体設定のつもり)
> jfut: (自分のアカウント: uid=jfut,ou=Users... ユーザ)
> 匿名ユーザー: (非ログインユーザ)
> users: (cn=users,ou=Groups,dc=seasar,dc=org グループ)

よろしくお願いします。

-- 
ふたがわ


operation メーリングリストの案内