j'ai coutume MyUserDetailsServiceGrails comment appeler MyUserDetailsService sur le contrôleur?
class MyUserDetailsService implements GrailsUserDetailsService {
...
}
et je veux appeler mon contrôleur
class MyController {
def springSecurityService
def check() {
String user = springSecurityService.principal.username
def MyUserdetails = MyUserDetailsService.loadUserByUsername(user)
}
}
et obtenir erreur
Pas de signature de la méthode: statique MyUserDetailsService.loadUserByUsername() est applicable pour argument types: (java.lang.String) valeurs: [utilisateur] Solutions possibles: loadUserByUsername (java.lang.String), loadUserByUsername (java.lang.String, Boolean)
je veux vérifier l'utilisateur après la connexion, donc je ne mets pas dans les haricots.
est oh mon mauvais à mettre dans src/groovy, maintenant je mets dans les services dossier, il est un travail maintenant, btw comment obtenir l'erreur message "throw new UsernameNotFoundException ( 'Utilisateur non trouvé')" from controller? merci –
sory je l'obtiens maintenant, utilisez try catch pour obtenir une exception de service, merci –
Avec Grails, l'approche recommandée est de laisser le framework gérer les injections de service plutôt que de les instancier manuellement. Donc, ne déclarez pas une nouvelle instance comme MyUserDetailsService muds et remplacez plutôt l'implémentation par défaut dans le fichier resources.groovy, puis utilisez simplement def userDetailsService pour accéder aux méthodes de ce service. – uchamp