我目前正在考虑在 Grails 中创建一个应用程序,并且我已经创建了该应用程序并安装了以下两个插件:
http://grails.org/plugin/spring-security-ldap http://grails.org/plugin/spring-security-core
然后我继续运行以下命令以获取安全核心设置:
grails s2-quickstart com.smstool User Role
然后创建了我需要的所有必要的控制器、视图和模型。然后我继续使用以下选项更新 config.groovy 文件:
grails.plugins.springsecurity.ldap.authorities.groupSearchBase = 'DC=MYLOCATION, DC=COM'
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = false
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory
grails.plugins.springsecurity.ldap.search.base = 'DC=MYLOCATION, DC=COM'
grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}" // for Active Directory you need this
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName'] // extra attributes you want returned; see below for custom classes that access this data
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] // specify this when you want to skip attempting to load from db and only use LDAP
// role-specific LDAP config
grails.plugins.springsecurity.ldap.useRememberMe = false
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase = 'DC=MYLOCATION, DC=COM'
然后我运行应用程序并转到运行第一个命令(s2-quickstart)时创建的登录页面,但是当我尝试输入我的 LDAP 详细信息时,我没有收到错误,但它说用户名不存在.
我认为这可能是因为需要进一步配置才能使此 LDAP 功能正常工作,并且用户输入的详细信息未正确传递,我也是 Grails 的新手 :-)。
我想我可能需要做一些事情,比如创建一个“UserDetailsContextMapper”,但是我不知道该怎么做,我查看了下面的链接,但似乎无法掌握我需要做什么:
http://grails-plugins.github.com/grails-spring-security-ldap/docs/manual/guide/2.%20Usage.html
有没有人可以帮助我理解上面的链接,或者知道我应该采取哪些步骤来正确地对 LDAP 进行身份验证?
提前致谢 :-)