У меня есть пользовательские MyUserDetailsServiceGrails как вызвать MyUserDetailsService на контроллере?
class MyUserDetailsService implements GrailsUserDetailsService {
...
}
и я хочу, чтобы позвонить в мой контроллер
class MyController {
def springSecurityService
def check() {
String user = springSecurityService.principal.username
def MyUserdetails = MyUserDetailsService.loadUserByUsername(user)
}
}
и получить ошибку
Нет подписи метода: статический MyUserDetailsService.loadUserByUsername() является применимо для аргумента типов: (java.lang.String) значения: [пользователь] Возможные решения: loadUserByUsername (java.lang.String), loadUserByUsername (java.lang.String, булево)
я хочу, чтобы проверить пользователя после входа в систему, так что я не ставлю его в бобах.
Ой мой плохим положить в И/заводных, теперь я положил в службах папка его работа сейчас, кстати, как получить сообщение об ошибке message "throw new UsernameNotFoundException ( « Пользователь не найден »)« от контроллера? спасибо –
sory я получаю это сейчас, используйте try catch, чтобы получить исключение throw из службы, спасибо –
С Grails рекомендуемый подход заключается в том, чтобы позволить фреймворкам обрабатывать служебные инъекции, а не вручную создавать их. Поэтому не объявляйте новый экземпляр, такой как MyUserDetailsService, и вместо этого перезаписывайте реализацию по умолчанию в файле resources.groovy, а затем просто используйте def userDetailsService для доступа к методам этой службы. – uchamp