2013-02-21 3 views
0

Я разрабатываю приложение с использованием Grails.Grails Springsecurity

У меня возникла проблема: всякий раз, когда я делаю некоторые изменения в классах доменов, приложение автоматически запускается, и когда я пытаюсь обновить страницу, я получаю доступ к странице с отказами, а в журналах отображаются user Id is null.
здесь это логарифм

попытку аутентификации с помощью org.springframework.deerwalk.impl.CustomCasAuthenticationProvider

groovy.lang.MissingMethodException: No signature of method: static com.usermanant.User.get() is applicable for argument types: (java.lang.Long) values: [1] 
Possible solutions: getId(), wait(long), setId(java.lang.Long), getAt(java.lang.String), grep(java.lang.Object), wait() 
User:null 

Пожалуйста, помогите мне.

ответ

2

Если вы используете базу данных в памяти, ваши существующие элементы будут удалены всякий раз, когда вы вносите изменения в свою модель домена.

Если вы хотите, вы можете вставить свой минимальный набор данных в bootstrap.groovy.

Горячая замена реальной базой данных, например MySQL, также требует перезагрузки приложения.

+0

Но почему нулевой идентификатор пользователя только тогда, когда приложение повторно запускает –

+0

Возможно, сеанс был признан недействительным. Вы должны получить такое же поведение, если вначале вы заходите на страницу без входа в систему. –

+0

Всегда перезагружать приложение при сохранении изменений в классе домена – Bart

0

В вашем Config.grooy (под Configurations) у вас есть следующие строки:

grails.plugins.springsecurity.userLookup.userDomainClassName = 'com....User' 
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'com....UserRole' 
grails.plugins.springsecurity.authority.className = 'com....Role' 

Вы должны иметь правильные имена классов здесь.

В вашем случае:

grails.plugins.springsecurity.userLookup.userDomainClassName ='com.usermanant.User'