当前位置: 首页 > 知识库问答 >
问题:

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

裴俊豪
2023-03-14

我目前正在研究在Grails中创建一个应用程序,我已经创建了应用程序并安装了以下两个插件:

http://grails.org/plugin/spring-security-ldap http://grails.org/plugin/spring-security-core

grails s2-quickstart com.smstool User Role
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”,但是我不知道如何做到这一点,我已经看了下面的链接,但似乎不能理解我需要做什么:

有没有人可以帮助我理解上面的链接,或者知道我应该采取哪些步骤来正确地根据LDAP进行身份验证??

提前致谢:-)

共有1个答案

左丘昊天
2023-03-14

也许我的存根项目能帮上忙?https://github.com/javazquez/grails-active-directory-ldap-example

 类似资料:
  • 我很难让LDAP安全配置与xml配置一起工作。

  • 我在Spring MVC web应用程序中遇到了一个困难的场景。 我的应用程序正在使用LDAP身份验证。当我在外部CAN环境中托管此应用程序时,身份验证失败,因为我的组织没有公共LDAP url。由于安全原因,它们没有公共LDAP url。 有没有可能,我在我的组织网络中创建了一个身份验证服务,并且每次用户试图身份验证时,我的应用程序都会点击该服务?? 如何将身份验证与应用程序分离?

  • 下面是我得到的错误(堆栈跟踪中列出的最后几个原因) 它似乎不喜欢contextSource bean的constructor-arg中列出的URL,尽管我不确定原因。 另外,我怀疑这个配置的其他部分是不正确的。例如,我在ldap-server标记和contextSource bean中定义了ldap服务器URL。这似乎是不必要的重复,但在示例中是这样做的。有人能好好看看配置,以确保它是正常的吗?

  • 我正在尝试使用spring security 2.0.3进行LDAP身份验证 下面是我的配置 我应该在哪里提到域名?

  • 我正在尝试使用grails-sporing-security-rest和grails-spring-security-ldap插件实现REST API的安全性。 流程应该是这样的,一旦实现了身份验证提供者,它将使用身份验证机制对用户进行身份验证。 但在我的情况下,我正在尝试验证JSON用户名和密码POST请求,下面是输出。 如果您观察日志,SpringSecurityLDAPTemboard身份验

  • 您好,我正在尝试使用WebSecurityConfigureAdapter类实现spring的ldap身份验证。 到目前为止,我可以通过内存中的方法进行身份验证,甚至可以通过我公司的ldap服务器进行身份验证,但是,如果我在创建新上下文时传递了硬编码的userDN和密码,或者我没有创建新上下文,或者我没有输入userDN和密码,jvm就会抛出我: 我的问题是,如何从登录表单中获取用户密码和user