【问题标题】:Grails Spring Security REST + LDAPGrails Spring Security REST + LDAP
【发布时间】:2015-05-04 22:44:32
【问题描述】:

我正在尝试在 Grails 中设置 Spring Security,使用令牌进行身份验证(通过 Spring Security REST 插件)并针对 LDAP 进行授权。我找到了几个例子(我现在打开了大约 20 个浏览器选项卡),但没有一个能回答整个问题。大多数示例是 Grails + REST Security 或 Grails + LDAP Security,但没有 Grails + REST + LDAP 示例。

我的问题是,当我需要它查找 LDAP 时,应用程序会尝试在数据库中查找用户和角色。

【问题讨论】:

    标签: spring rest grails spring-security ldap


    【解决方案1】:

    我发现解决方案是进入 resources.groovy 并将 userDetailsS​​ervice bean 配置为使用 LDAP。唯一的“先决条件”是您的 LDAP 服务器必须已经有正确的 LDAP 配置。我在这里找到了这个解决方案:http://swordsystems.com/2011/12/21/spring-security-cas-ldap/。并且只拿了下一块。

    // Place your Spring DSL code here
    import grails.plugin.springsecurity.SpringSecurityUtils
    beans = {
        def config = SpringSecurityUtils.securityConfig
        if (config.ldap.context.server) {
            SpringSecurityUtils.loadSecondaryConfig 'DefaultLdapSecurityConfig'
            config = SpringSecurityUtils.securityConfig
    
            initialDirContextFactory(org.springframework.security.ldap.DefaultSpringSecurityContextSource,
                    config.ldap.context.server){
                userDn = config.ldap.context.managerDn
                password = config.ldap.context.managerPassword
            }
    
            ldapUserSearch(org.springframework.security.ldap.search.FilterBasedLdapUserSearch,
                    config.ldap.search.base,
                    config.ldap.search.filter,
                    initialDirContextFactory){
            }
    
            ldapAuthoritiesPopulator(org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator,
                    initialDirContextFactory,
                    config.ldap.authorities.groupSearchBase){
                groupRoleAttribute = config.ldap.authorities.groupRoleAttribute
                groupSearchFilter = config.ldap.authorities.groupSearchFilter
                searchSubtree = config.ldap.authorities.searchSubtree
                rolePrefix = "ROLE_"
                convertToUpperCase = config.ldap.mapper.convertToUpperCase
                ignorePartialResultException = config.ldap.authorities.ignorePartialResultException
            }
    
            userDetailsService(org.springframework.security.ldap.userdetails.LdapUserDetailsService,
                    ldapUserSearch,
                    ldapAuthoritiesPopulator){
            }
        }
    }

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 2019-05-09
      • 2011-09-23
      • 2014-11-02
      • 2017-02-22
      • 2014-04-01
      • 2018-03-02
      • 2015-09-19
      • 2016-05-24
      相关资源
      最近更新 更多