Почему регистрация нового пользователя, использующего плагин Acegi для Grails, дает «роль по умолчанию не найдена». ошибка

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

Вопрос

Возможно, поместите другой способ, как мне настроить роль безопасности по умолчанию для вновь зарегистрированных пользователей в Grails с помощью плагина Teh Acegi?

Я следовал учебному пособию Acegi/Grails здесь И я использую аннотации контроллера - хотя я еще ничего не заработал.

Я добавил вторую роль под названием Web_user и успешно добавил пользователя к этой роли.

Однако, когда я использую контроллер регистрации для другого нового пользователя, я получаю сообщение об ошибке от Grails, говорящая "Default role not found".

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

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

Что предполагается, значит определить роль по умолчанию и почему я получаю это сообщение.

О, и как вы произносите Acegi?

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

Решение

Это проблема документации. Страница регистрации не позволяет вам выбрать роли, поскольку ожидается, что это будет публичная страница регистрации. По крайней мере, одна роль требуется при создании пользователя, поэтому она ожидает, что для этого рабочего процесса настроена роль «по умолчанию».

Вы можете установить роль по умолчанию в SecurityConfig.groovy с атрибутом «Delaultrole». По умолчанию это «role_user», но это может быть то, что вы хотите. Должен быть экземпляр полномочий с этим значением, прежде чем пользователи смогут зарегистрироваться.

Произношение находится в FAQ - http://www.acegisecurity.org/faq.html

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

Я нашел ответ. Как правило, Грааля, есть роль по умолчанию, называемую Role_user. Когда вы зарегистрируете нового пользователя, он ищет роль с этим именем и, если он находит его, он назначает его пользователю.

Сообщение «Роль по умолчанию не найдена» является неоднозначным в том, как его можно прочитать.

Сначала я думал, что это означает, что «вам нужно определить роль по умолчанию где -то, чтобы на нее были назначены вновь зарегистрированные пользователи».

Однако я думаю, что это действительно означает «вам нужно создать строку базы данных в вашей таблице ролей, которая называется Role_user, так что нормальная конфигурация работает».

Меня поражает, что часть генерации функций безопасности Грааляна должна просто добавить ROLE_ADMIN и ROLE_USER в начальную загрузку базы данных и сделал с возможностью ошибки.

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