spring で作成された特定のアプリケーションの LDAP を介してユーザーを追加します。
これはほとんどの場合に機能しますが、場合によっては機能しません...
私が使用するユーザーを取得します。
public class LdapUserServiceImpl implements ILdapUserService {
@Override
public List<LdapUserVO> getUserNamesByQuery(String query) {
return ldapTemplate.search(
query().countLimit(15)
.where("objectClass").is("user")
.and("sAMAccountName").isPresent()
.and(query()
.where("sAMAccountName").like("*" + query + "*")
.or("sAMAccountName").is(query)
.or("displayName").like("*" + query + "*")
.or("displayName").is(query))
,
new AttributesMapper<LdapUserVO>() {
public LdapUserVO mapFromAttributes(Attributes attrs) throws NamingException {
LdapUserVO ldapUser = new LdapUserVO();
Attribute attr = attrs.get(ldapUserSearch);
if (attr != null && attr.get() != null) {
ldapUser.setUserName(attr.get().toString());
}
attr = attrs.get("displayName");
if (attr != null && attr.get() != null) {
ldapUser.setDisplayName(attr.get().toString());
}
return ldapUser;
}
});
}
}
したがって、これはほとんどの場合に機能しますが、次のエラーが発生することがあります。
unprocessed continuation reference(s); remaining name "/"
私はこれについてたくさん検索しましたが、明示的に設定しました
DefaultSpringSecurityContextSource ctxSrc = new DefaultSpringSecurityContextSource(ldapUrl);
ctxSrc.setReferral("follow");
いくつかの詳細情報:
- 検索クエリ「admin_a」は機能しますが、「admin_ah」は機能しません
- 春のバージョンは 4.2.5.RELEASE
- Spring ldap-core のバージョンは 2.0.2.RELEASE です
残りの名前がルートディレクトリであることは奇妙だと思います...誰かがこれを修正する方法、またはどこから探し始めるかさえ考えていますか?
前もって感謝します!