【发布时间】:2015-01-18 10:16:25
【问题描述】:
我在 Grails 2.3.2 中使用 spring-security-ldap:2.0-RC2 插件。我正在尝试连接到 Active Directory 服务器。我在 config.groovy 中按如下方式配置了插件
grails.plugins.springsecurity.ldap.context.server = 'ldap://[ip]:389'
grails.plugins.springsecurity.ldap.context.managerDn = '[DN]'
grails.plugins.springsecurity.ldap.context.managerPassword = '[password]'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
grails.plugins.springsecurity.ldap.search.filter = '(sAMAccountName={0})'
grails.plugins.springsecurity.ldap.search.base = [searchbase]
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['name', 'mail']
我收到连接错误。但是,连接被列为 localhost:389,而不是我指定的 AD 服务器。
Caused by CommunicationException: localhost:389; nested exception is
javax.naming.CommunicationException: localhost:389 [Root exception is java.net.ConnectException:
Connection refused: connect]
->> 76 | attemptAuthentication in
grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 49 | doFilter in ''
| 82 | doFilter . . . . . . in
grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
注意:我尝试使用 Groovy-Ldap.jar 连接(在单独的 Groovy 项目中) 我与:
ldap = LDAP.newInstance('ldap://[ip]:389', '[DN]', '[password]')
这很好用。我可以连接到AD。 知道什么是错的,为什么尝试 localhost:389 和我指定的 AD?
注意:在我的 Grails 项目中,我使用的是 ProxySettings.groovy 文件,其中包含 http.nonProxyHosts 中的多个条目(所有需要在内部网络中访问的服务器)。我已经尝试在 nonProxyHosts 中包含 AD 服务器,但这没有什么区别。
问候,
扬-威廉·克伦普
【问题讨论】:
标签: grails spring-security active-directory grails-plugin