使用spring-security-core-ldap插件在grails中实现LDAP身份验证?

时间:2012-09-03 15:29:34

标签: security grails ldap

我目前正在研究在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?

提前致谢: - )

1 个答案:

答案 0 :(得分:1)

也许我的存根项目可以提供帮助? https://github.com/javazquez/Grails-Active-Directory-LDAP-example