Ошибка аутентификации подключаемого модуля Spring Security - PullRequest
4 голосов
/ 04 августа 2011

РЕДАКТИРОВАННАЯ ГОЛОВКА: больше связано с актуальной проблемой

Я пытаюсь настроить безопасность пружины для моего тестового приложения

я установил плагин, создал классы User и Role;

поместите это в UrlMappings.groovy;

        "/login/$action?"(controller: "login")
    "/logout/$action?"(controller: "logout")

затем я помещаю пользователя в загрузчик следующим образом:

import org.project.auth.Role
import org.project.auth.User
import org.project.auth.UserRole;

class BootStrap {
    def springSecurityService
    def init = { servletContext ->
        def userRole = Role.findByAuthority('ROLE_USER') ?: new Role(authority: 'ROLE_USER').save(failOnError: true,flush:true)
        def adminRole = Role.findByAuthority('ROLE_ADMIN') ?: new Role(authority: 'ROLE_ADMIN').save(failOnError: true,flush:true)

        def adminUser = User.findByUsername('admin') ?: new User(

                username: 'admin',

                password: springSecurityService.encodePassword('admin'),

                enabled: true).save(failOnError: true,flush:true)

        print User.count()          

        if (!adminUser.authorities.contains(adminRole)) {
                    print "TEST"
            UserRole.create adminUser, adminRole,true
        }
    }
    def destroy = {
    }
}

этот print User.count () возвращает 1, так что я знаю, что пользователь создан, print "TEST" также работает, поэтому я знаю, что он входит в блок if, но когда я запускаю сервер, он завершается с ошибкой

Sorry, we were not able to find a user with that username and password.

Я использую Grails 2.0.0.M1, как вы думаете, это может быть проблема?

Ответы [ 2 ]

9 голосов
/ 04 августа 2011

Класс домена пользователя в версии 1.2 плагина шифрует пароль для вас.Поэтому старый код, подобный этому, использует двойное кодирование springSecurityService.Измените password: springSecurityService.encodePassword('admin') на password: 'admin', и оно должно работать.

Если нет, включите отладку, и вы должны увидеть сообщение о причине сбоя.Добавьте это в Config.groovy в блоке log4j:

debug 'org.springframework.security'

Также, для безопасности, я бы изменил if (!adminUser.authorities.contains(adminRole)) { на if (!UserRole.findByUserAndRole(adminUser, adminRole)) { `

0 голосов
/ 28 ноября 2012

Я столкнулся с той же проблемой, но после некоторых поисков натолкнулся на это.http://jira.grails.org/browse/GPSPRINGSECURITYUI-33 и http://jira.grails.org/browse/GPSPRINGSECURITYUI-27 Надеюсь, это поможет.Но я не могу найти следующую стабильную версию, где эта проблема исправлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...