spring - Grails Spring Security REST + LDAP

标签 spring rest grails spring-security ldap

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

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

最佳答案

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

// 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){
        }
    }
}

关于spring - Grails Spring Security REST + LDAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846091/

相关文章:

spring - Grails 和 Spring Security : How catch user into controller?

spring - grails +单例服务,用于将对象保存到数据库以供云应用程序

json - RESTful HTTP API标准?

java - Spring Boot @EnableTransactionManagement(mode = AdviceMode.ASPECTJ) 不起作用

REST API 设计 - 通过具有不同参数但相同 url 模式的 REST 获取资源

java - CXF-JaxRS WebClient 的自定义对象输入

regex - 如何为以下情况创建正则表达式?

grails - Grails 3域类名为 “Application”的问题

spring - 使用 MyBatis 和 Spring 在项目中记录 SQL 查询

java - tomcat7 maven插件WebApplicationInitializer错误