Frage

Ich habe meine Grails 1.0.4 + Acegi 0.4.1 Projekt auf Gral 1.1 mit Acegi 0.5.1 verbessert.

Ich kann meine Anwendung ohne Fehler starten, aber wenn ich mich anmelden möchte, erhalte ich eine "falsche Benutzername oder Passwort" -Meldung. Grails-Shell-Ausgabe ist:

2009-04-26 12: 38: 46.997 [403984690@qtp0-0] Fehler SpringSecurity.GrailsdaoImpl-Benutzer
admin] hat keine gewährte authorität

Vielleicht weiß jemand, warum ich mich nicht anmelden kann? Der Benutzer "Admin" wird in Bootstrap erstellt.

Ich hoffe ihr könnt mir helfen! Vielen Dank aus Deutschland, Whitenexx

War es hilfreich?

Lösung 2

Ich habe mein Problem gefunden. Ich musste die Methode Passwordcoder () oder Encodepassword () für mich selbst bearbeiten/codieren (mit meinem Algorithmus usw.). passwordEncoder () ist veraltet, bitte verwenden Sie CCodepassword ()!

Andere Tipps

Ich bin auf genau das gleiche Problem gestoßen. Überprüfen Sie, ob Sie den Benutzer in Bootstrap.Groovy erstellen, dass Sie den Benutzer zuerst mit einem Passwort und allen Feldern erstellen, auch wenn er optional ist (nicht sicher warum). Erstellen Sie dann die neue Rolle und fügen Sie die Person zu der Rolle hinzu.

Eine Möglichkeit, zu überprüfen, ob der Benutzer der Rolle zugewiesen wird, besteht darin, die Tabelle rol_people zu prüfen, die die Benutzer in Rollen ordnet.

Dies ist meine Bootstrap.Groovy -Datei:

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

Ich hatte Acegi benutzt und hatte ein ähnliches Problem. Wenn Sie die Encode -Standardeinstellung des Acegi verwenden, rufen Sie an passwordEncoder(). Andernfalls sollten Sie anrufen encodePassword().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top