2009-04-26 5 views
1

J'ai mis à jour mes grails 1.0.4 + acegi 0.4.1 projet à grails 1.1 avec acegi 0.5.1.Graines Acegi Plugin springsecurity.GrailsDaoImpl - Utilisateur [admin] n'a pas GrantedAuthority

Je suis capable de démarrer mon application sans erreur, mais quand je veux me connecter je reçois un "mauvais nom d'utilisateur ou mot de passe". sortie Grails-shell est le suivant:

2009-04-26 12: 38: 46997 [403984690 @ qtp0-0] ERREUR springsecurity.GrailsDaoImpl - Utilisateur
[admin] n'a pas GrantedAuthority

Peut-être que quelqu'un sait pourquoi je ne peux pas me connecter? L'utilisateur "admin" est créé dans Bootstrap.

J'espère que vous pouvez m'aider! Merci de l'Allemagne, whitenexx

Répondre

0

J'ai trouvé mon problème. J'ai dû éditer/coder la méthode passwordEncoder() ou encodePassword() par moi-même (avec mon algorithme et ainsi de suite). passwordEncoder() est obsolète, veuillez utiliser encoderPassword()!

1

J'ai rencontré exactement le même problème. Assurez-vous que lorsque vous créez l'utilisateur dans BootStrap.groovy, vous créez d'abord l'utilisateur avec un mot de passe et tous les champs, même s'ils sont facultatifs (je ne sais pas pourquoi). Créez ensuite le nouveau rôle, puis ajoutez la personne au rôle. L'une des façons de vérifier si l'utilisateur est assigné au rôle est de regarder la table role_people qui mappe les utilisateurs aux rôles.

Ceci est mon fichier BootStrap.groovy:

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 = { 
    } 
} 
+0

J'ai trouvé mon problème. J'ai dû éditer/coder la méthode passwordEncoder() ou encodePassword() par moi-même (avec mon algorithme et ainsi de suite). passwordEncoder() est obsolète, veuillez utiliser encoderPassword()! – whitenexx

0

J'avais l'habitude acegi et ai eu un problème semblable. Si vous utilisez l'encodage par défaut de l'acegi, appelez passwordEncoder(). Sinon, vous devez appeler le encodePassword().

Questions connexes