Как использовать плагин LDAP на Grails?

Я начинаю новый проект на Groovy и Grails. Сейчас я работаю над частью аутентификации, и, поскольку у нас есть сервер LDAP, я хочу работать с аутентификацией с использованием LDAP. Я начал настраивать свою среду, я использую SpringSource Tool Suite и Grails 1.3.5. Когда я начал работать с частью аутентификации, я установил два плагина:

  • springSecurityCore - 1.0.1
  • springSecurityLdap - 1.0.1

Я также выполнил команду "s2 quickstart" для плагина LDAP.

Все выглядит отлично, я могу использовать LoginController и LogoutController, я могу защитить веб-страницу, чтобы ее можно было увидеть только при входе в систему. Я делаю это, создавая пользователя в BootStrap.groovy

Я также настроил все параметры LDAP и Spring Security Core в Config.groovy с соответствующими значениями нашего сервера LDAP:

   grails.plugins.springsecurity.ldap.context.managerDn
   grails.plugins.springsecurity.ldap.context.managerPassword
   grails.plugins.springsecurity.ldap.context.server
   grails.plugins.springsecurity.ldap.authorities.groupSearchBase
   grails.plugins.springsecurity.ldap.search.base
   grails.plugins.springsecurity.userLookup.userDomainClassName
   grails.plugins.springsecurity.userLookup.authorityJoinClassName
   grails.plugins.springsecurity.authority.className

Однако я не знаю, как проверить, что аутентификация выполняется с сервером LDAP. Я уверен, что это не сделано с LDAP, потому что, когда я захожу в окно входа в систему, когда приложение работает, и я пытаюсь пройти аутентификацию с моим именем пользователя и паролем, которые я обычно использую для сервера LDAP, он говорит, что не может найти это пользователь. Если я пытаюсь пройти аутентификацию с пользователем, которого я создал на BootStrap.groovy, я могу войти в систему, но я предполагаю, что пользователь создается только локально, и это временно.

  1. Как я могу установить в качестве поставщика аутентификации сервер LDAP?
  2. Что еще мне нужно сделать после установки ядра безопасности и плагинов ldap после запуска "s2 quickstart"?

Эта вещь Groovy и Grails делает так много вещей на заднем плане, что в начале трудно понять, где все настроить.

Заранее спасибо за помощь

РЕДАКТИРОВАТЬ: Я искал информацию о том, как использовать эти плагины, но я не нашел ничего, что хорошо документировано, я нашел информацию об Acegi, но этот плагин больше не поддерживается, поэтому я спрашиваю здесь

РЕДАКТИРОВАТЬ: Чтение этого (я посмотрю, если можно использовать LDAP): http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/

2 ответа

Решение

1.Как я могу установить провайдер аутентификации как сервер LDAP?

Я вполне уверен, что это запись Config.groovy, которая активирует аутентификацию LDAP.

grails.plugins.springsecurity.providerNames = ['ldapAuthProvider',
'anonymousAuthenticationProvider',
'rememberMeAuthenticationProvider']

2. Что еще мне нужно сделать после установки ядра безопасности и плагинов ldap после запуска "s2 quickstart"?

Я нашел это обсуждение очень полезным: CustomUserDetailsService. Результатом стал этот метод в расширении UserDetailsContextMapper:

UserDetails mapUserFromContext(org.springframework.ldap.core.DirContextOperations ctx,
    java.lang.String username,
    java.util.Collection<GrantedAuthority> authority) {

    User.withTransaction { status ->

        def user = getUser(ctx)  // Creates and saves a MyUser domain class instance


        def userDetails = new MyUserDetails(
                    username,
                    authority ?: NO_ROLES,
                    user.id, 
                    user.name,
                    user.mail)

        userDetails.fullname = user.name
        userDetails.email = user.mail

        return userDetails

    }

}

И я думаю, что это resources.groovy запись была необходима:

beans = {
ldapUserDetailsMapper(MyUserDetailsContextMapper) {
}

Оба плагина имеют довольно обширную документацию в следующих местах:

http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/index.html http://burtbeckwith.github.com/grails-spring-security-ldap/docs/manual/index.html

Другие вопросы по тегам