2015-03-04 6 views
4

Я пытаюсь настроить Spring Security в Grails на аутентификацию с помощью токена (через плагин Spring Security REST) ​​и авторизацию на LDAP. Я нашел несколько примеров (сейчас у меня открыто около 20 вкладок браузера), но ни один из них не отвечает на весь вопрос. Большинство примеров - Grails + REST Security или Grails + LDAP Security, но примеров Grails + REST + LDAP нет.Grails Spring Security REST + LDAP

Моя проблема заключается в том, что приложение пытается искать в базе данных пользователей и роли, когда мне это нужно, чтобы посмотреть на LDAP.

ответ

3

Я нашел решение, чтобы перейти в resources.groovy и настроить компонент userDetailsService для использования 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){ 
 
     } 
 
    } 
 
}

Смежные вопросы