Grails Acegi Plugin Springsecurity.grailsdaoimpl - Пользователь [Admin] не имеет предоставления.

StackOverflow https://stackoverflow.com/questions/790619

Вопрос

Я обновил свой проект Grails 1.0.4 + Acegi 0.4.1 для Grails 1.1 с Acegi 0.5.1.

Я могу запустить свое приложение без ошибок, но когда я хочу войти в систему, я получаю сообщение «Неправильное имя пользователя или пароль». Вывод Grails-Shell-это:

2009-04-26 12: 38: 46,997 [403984690@qtp0-0] Ошибка Springsecurity.grailsdaoimpl-Пользователь
администратор] не имеет предоставленного

Может, кто -то знает, почему я не могу войти в систему? Пользователь «администратор» создается в начальной загрузке.

Я надеюсь, что вы можете помочь мне! Спасибо из Германии, WhitEnexx

Это было полезно?

Решение 2

Я нашел свою проблему. Мне пришлось отредактировать/кодировать метод PasswordEncoder () или EncodepassWord () сам (с моим алгоритмом и т. Д.). PasswordEncoder () устарел, используйте encodepassword ()!

Другие советы

Я столкнулся с той же проблемой. Проверьте, чтобы убедиться, что когда вы создаете пользователя в Bootstrap.groovy, что вы сначала создаете пользователя с паролем и всеми полями, даже если он не является обязательным (не уверен, почему). Затем создайте новую роль, а затем добавьте человека к роли.

Один из способов проверить, назначается ли пользователь для этой роли, - это посмотреть на таблицу Role_people, которая отображает пользователей на роли.

Это мой bootstrap.grovy file:

class BootStrap {
    // include this line to encode password for ACEGI
    def authenticateService 

     def init = { servletContext ->
        //create admin user
        def password = authenticateService.passwordEncoder("password") 
        def superadmin = new User(username:"admin",userRealName:"Administrator",passwd:password,enabled:true,emailShow:true,description:"admin user",email:"put email here").save()

        //create admin role
        def sudo = new Role(authority:"ROLE_ADMIN",description:"Site Administrator")
        // now add the User to the role
         sudo.addToPeople(superadmin)
        sudo.save()

        new Role(authority:"ROLE_USER",description:"User").save()

     }
     def destroy = {
     }
} 

Я использовал Acegi, и у меня была похожая проблема. Если вы используете дефолт Encode Acegi, вызовите passwordEncoder(). Анкет В противном случае вы должны позвонить encodePassword().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top