5

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 です

残りの名前がルートディレクトリであることは奇妙だと思います...誰かがこれを修正する方法、またはどこから探し始めるかさえ考えていますか?

前もって感謝します!

4

2 に答える 2