Spring LDAP querybuilder PartialResultException

アルバロデルガドビラルバ

LDAPサーバーからすべてのユーザーを取得し、ベースから検索を実行しようとしています。これが私のコードです。

public LdapTemplate ldapTemplate() {
        LdapContextSource ctxSrc = new LdapContextSource();
        ctxSrc.setUrl("ldap://127.0.0.1:389/");
        ctxSrc.setBase("dc=test,dc=com");
        ctxSrc.setUserDn("admin");
        ctxSrc.setPassword("password");
        ctxSrc.afterPropertiesSet();
        LdapTemplate lt = new LdapTemplate(ctxSrc);
        return lt;
}
private LdapTemplate ldapTemplate = ldapTemplate();
public List<User> getAllUsers() {

        LdapQuery query= query().base("").where("objectclass").is("user");
        return ldapTemplate.search(query, new UserAttributesMapper());
}

これはエラーです:

10:07:09.406 [main] DEBUG o.s.l.c.s.AbstractContextSource - AuthenticationSource not set - using default implementation
10:07:09.413 [main] DEBUG o.s.l.c.s.AbstractContextSource - Not using LDAP pooling
10:07:09.416 [main] DEBUG o.s.l.c.s.AbstractContextSource - Trying provider Urls: ldap://127.0.0.1:389/dc=test,dc=com
10:07:09.548 [main] DEBUG o.s.l.c.s.AbstractContextSource - Got Ldap context on server 'ldap://127.0.0.1:389/dc=test,dc=com'
Exception in thread "main" org.springframework.ldap.PartialResultException: Unprocessed Continuation Reference(s); nested exception is javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name '/'
    at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:216)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:385)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:309)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:616)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:586)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:1651)
    at ldap.example.UserRepositoryImpl.getAllUsers(UserRepositoryImpl.java:81)
    at ldap.example.test.LdapApp.main(LdapApp.java:23)
Caused by: javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name '/'
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2914)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888)
    at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.getNextBatch(AbstractLdapNamingEnumeration.java:148)
    at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:217)
    at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMore(AbstractLdapNamingEnumeration.java:189)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:365)
    ... 6 more

BUILD FAILED (total time: 1 second)

フィルタリングするouと機能しますが、ルートからフィルタリングする必要があります。

jsosnowski

ポートを変更すると役立つという質問のコメントを書きます。ただし、ポートを変更してもこの問題は解決しません。ポート3268はActiveDirectoryの特別な場所-グローバルカタログを指します。すべてのオブジェクトのセットがありますが、それぞれに属性の小さなサブセットしかありません(たとえば、distinguishedNamecnsAMAccountName ...)。つまり、より具体的な属性が必要なくなるまで機能します。

問題分析

クエリの結果としてADが参照オブジェクトを返すため、例外が発生します

[Active Directory](...)フォレストに存在するが、要求を処理するディレクトリサーバーに含まれていないオブジェクトに関するデータを要求するクエリに応答して参照生成します。これらは、フォレスト内のドメイン、スキーマ、および構成コンテナーを参照するため、内部相互参照と呼ばれます。

また、紹介追跡が無効になっている場合:

場合は、紹介追跡が有効になっていないと、サブツリー検索が実行され、検索は、検索基準を満たす指定したドメイン内のすべてのオブジェクトを返します。検索では、ディレクトリサーバードメインの直接の子孫である従属ドメインへの参照も返されます。クライアントは、紹介によって指定されたパスにバインドし、別のクエリ送信することによって、紹介を解決する必要があります

紹介追跡を有効にすることはできますが、コストがかかります-アプリケーションの速度が低下します-これについては、ここで読むことができますそして、ほとんどの場合、それは必要ではないと思います。

解決策1:解決策1:

場合ctxSrc.setBase()によっては、質問でより具体的なbaseDNメソッドを割り当てるだけで十分な解決策があります。たぶん、すべてのユーザーは内側のパスの中にいます"ou=user,dc=department,dc=test,dc=com"

この回答で詳細をお読みください

解決策2:解決策2:

SpringではLdapTemplate、メソッドsetIgnorePartialResultException()を使用してこの例外を無視することもできます

ldapTemplate.setIgnorePartialResultException(true);

この回答で詳細をお読みください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring LDAP querybuilder PartialResultException

分類Dev

Spring Security 4.0.0 + ActiveDirectoryLdapAuthenticationProvider + BadCredentialsException PartialResultException

分類Dev

Spring SecurityおよびJavaConfigで認証するときのPartialResultException

分類Dev

Spring Security LDAP Configuration

分類Dev

SpringのLdapTemplate検索:PartialResultException:未処理の継続参照。残りの名前 '/'

分類Dev

SpringのLdapTemplate検索:PartialResultException:未処理の継続参照。残りの名前 '/'

分類Dev

Spring SecurityとLDAP認証

分類Dev

Spring Security + Auth LDAP:BindRequestとUnbindRequest?

分類Dev

Using both LDAP and DB authentication with Spring Security

分類Dev

Spring Boot REST API using LDAP authentication

分類Dev

Configuring a Custom LDAP Authentication Provider with Spring Security

分類Dev

Spring Security LDAPと記憶する

分類Dev

sslでspring-ldapを使用する

分類Dev

Spring Security Active Directory LDAP認証エラー

分類Dev

How to bind multi-valued attributes in LDAP using Spring repository

分類Dev

Spring BootアプリでのLDAP認証

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Webflux + LDAP / Kerberosセキュリティ

分類Dev

Spring Security + LDAP: session is cleared right after Login

分類Dev

Spring-ldap構成の問題

分類Dev

Symony QueryBuilder

分類Dev

application.propertiesに複数のspring.ldap.urlsがあるspring.data.ldap

分類Dev

Spring SecurityでSpring LDAPを使用できない

分類Dev

Active Directory PartialResultExceptionを使用したJNDI

分類Dev

PartialResultExceptionを無視するSpringSecurity Active Directory

分類Dev

PartialResultExceptionを無視するSpringSecurity Active Directory

分類Dev

Spring LDAP APIを使用し、Springセキュリティを使用せずにLDAPを使用して認証する

Related 関連記事

  1. 1

    Spring LDAP querybuilder PartialResultException

  2. 2

    Spring Security 4.0.0 + ActiveDirectoryLdapAuthenticationProvider + BadCredentialsException PartialResultException

  3. 3

    Spring SecurityおよびJavaConfigで認証するときのPartialResultException

  4. 4

    Spring Security LDAP Configuration

  5. 5

    SpringのLdapTemplate検索:PartialResultException:未処理の継続参照。残りの名前 '/'

  6. 6

    SpringのLdapTemplate検索:PartialResultException:未処理の継続参照。残りの名前 '/'

  7. 7

    Spring SecurityとLDAP認証

  8. 8

    Spring Security + Auth LDAP:BindRequestとUnbindRequest?

  9. 9

    Using both LDAP and DB authentication with Spring Security

  10. 10

    Spring Boot REST API using LDAP authentication

  11. 11

    Configuring a Custom LDAP Authentication Provider with Spring Security

  12. 12

    Spring Security LDAPと記憶する

  13. 13

    sslでspring-ldapを使用する

  14. 14

    Spring Security Active Directory LDAP認証エラー

  15. 15

    How to bind multi-valued attributes in LDAP using Spring repository

  16. 16

    Spring BootアプリでのLDAP認証

  17. 17

    Spring Security LDAP VS CAS VSOpenIDの違い

  18. 18

    Spring Security LDAP VS CAS VSOpenIDの違い

  19. 19

    Spring Security LDAP VS CAS VSOpenIDの違い

  20. 20

    Spring Webflux + LDAP / Kerberosセキュリティ

  21. 21

    Spring Security + LDAP: session is cleared right after Login

  22. 22

    Spring-ldap構成の問題

  23. 23

    Symony QueryBuilder

  24. 24

    application.propertiesに複数のspring.ldap.urlsがあるspring.data.ldap

  25. 25

    Spring SecurityでSpring LDAPを使用できない

  26. 26

    Active Directory PartialResultExceptionを使用したJNDI

  27. 27

    PartialResultExceptionを無視するSpringSecurity Active Directory

  28. 28

    PartialResultExceptionを無視するSpringSecurity Active Directory

  29. 29

    Spring LDAP APIを使用し、Springセキュリティを使用せずにLDAPを使用して認証する

ホットタグ

アーカイブ