2012-02-21 33 views
0

我正在使用Grails 2,Groovy 1.8.5,Grails Ldap插件在Active Directory上通過LDAP執行查找,並且我正在獲取javax.naming.PartialResultException:未處理的繼續引用(s);剩餘的名字'/'。對於授權,我使用Spring LDAP,它可以正常工作,沒有問題。 我環顧四周,最線程都在談論自動跟蹤參照我用這個標誌derefLinkFlag =真 我甚至試圖通過這個參數JVM -Djava.naming.referral =跟隨LDAP搜索未處理的延續引用

有沒有人來對面這個?歡迎任何建議。你認爲這與AD的建立有關嗎?如果是的話,我應該尋找什麼,我是AD的新手。

我可以避免這種異常,因爲它發生在我的活動目錄是全球目錄,所以我只是連接到端口3268,一切工作正常。但是,有一點需要注意,並非所有屬性都添加到全局編錄中,例如physicalDeliveryOfficeName。這也可以通過將屬性複製/包含到GC模式來解決,但是由於多種原因,我不想這麼做。

的代碼如下: 在配置

ldap { 
    directories { 
    rootdir { 
    url = "ldap://my.company.com:389" 
    base = "DC=my,DC=company,DC=com" 
    userDn = "cn=User Name,cn=Users,dc=my,dc=company,dc=com" 
    password = "secret" 
    searchControls { 
    countLimit = 400 
    timeLimit = 6000 
    searchScope = "subtree" 
    derefLinkFlag = true 
    } 
    } 
} 

schemas = [ 
    com.mycompany.ldap.User, 
    com.mycompany.ldap.Group 
] 
} 

@GldapoSchemaFilter("(objectclass=person)") 
class User { 
@GldapoNamingAttribute 
String cn 

String dn 
String mail 
String sn 
String physicalDeliveryOfficeName 
} 

的控制器

class UserController { 

    def index() { 
     redirect(action: "list") 
    } 

    def list(){ 
    List users = User.findAll() 
    [userInstanceList: users, userInstanceTotal: users.size()] 
    } 
} 

例外:

Unprocessed Continuation Reference(s). Stacktrace follows: 
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining  name '/' 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2846) 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820) 
at com.sun.jndi.ldap.LdapNamingEnumeration.getNextBatch(LdapNamingEnumeration.java:129) 
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMoreImpl(LdapNamingEnumeration.java:198) 
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMore(LdapNamingEnumeration.java:171) 
at gldapo.GldapoDirectory.nonPagedSearch(GldapoDirectory.groovy:162) 
at gldapo.GldapoDirectory.search(GldapoDirectory.groovy:144) 
at gldapo.schema.GldapoSchemaClassInjecto$__clinit__closure35.doCall(GldapoSchemaClassInjecto.groovy:374) 
at gldapo.schema.GldapoSchemaClassInjecto$__clinit__closure38.doCall(GldapoSchemaClassInjecto.groovy:390) 
at uk.co.mycomp.myapp.ldap.UserController.list(UserController.groovy:15) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 

非常感謝, ģ

回答

3

的解決方案是包括以下行到LDAP設置在Config.groovy

ignorePartialResultExcepton = true 
+0

ignorePartialResultException缺少i。令人尷尬的是,這讓我感到困惑。 – lechuck 2014-02-24 17:04:58

0

命名異常javax.naming.PartialResultException:未處理繼續參考(一個或多個);剩餘的名稱: 這個錯誤來自您從searchbaseDN工作的頂級域名。在搜索庫中使用ou(Organization unit)dn