Warum gibt die Registrierung eines neuen Benutzers mithilfe des ACEGI -Plugins für Grails eine „Standardrolle nicht zu finden“. Error

StackOverflow https://stackoverflow.com/questions/2049789

Frage

Vielleicht eine andere Möglichkeit, wie ich eine Standardsicherheitsrolle für neu registrierte Benutzer in Grails mit dem TEH-ACEGI-Plug-In einrichten kann?

Ich habe das Acegi/Grails -Tutorial gefolgt hier und verwende Controller -Anmerkungen - obwohl ich noch nichts gesichert habe.

Ich habe eine zweite Rolle namens Web_User hinzugefügt und diese Rolle erfolgreich einen Benutzer hinzugefügt.

Wenn ich den Registercontroller für einen anderen neuen Benutzer verwende, erhalte ich jedoch eine Fehlermeldung von Grails, die sagen "Default role not found".

Ich konnte sehen, wie ich mich ungefähr aus diesem Null-Rollenliste in der entsprechenden Erstellung Methode abwickeln oder sogar einen Standard-Rollennamen als verstecktes Feld aus der Registrierungsansicht veröffentlichen konnte.

Ich denke, ich sollte dies entweder in der Benutzerdomänenklasse selbst oder irgendwie in der Beziehung in der Datenbank zwischen Benutzer- und Rollentabellen definieren können.

Was ist das beabsichtigte bedeutet, eine Standardrolle zu definieren, und warum bekomme ich diese Nachricht?

Oh, und wie spricht man Acegi aus?

War es hilfreich?

Lösung

Dies ist ein Dokumentationsproblem. Auf der Seite Register können Sie keine Rollen auswählen, da erwartet wird, dass es sich um eine öffentliche Anmeldeseite handelt. Bei der Erstellung eines Benutzers ist mindestens eine Rolle erforderlich. Es wird erwartet, dass für diesen Workflow eine "Standard" -Rolle ist.

Sie können die Standardrolle in SecurityConfig.groovy mit dem Attribut "Defaultrol" festlegen. Standardmäßig ist es 'ROLE_USER', aber es kann alles sein, was Sie wollen. Es muss eine Autoritätsinstanz mit diesem Wert geben, bevor sich Benutzer registrieren können.

Die Aussprache befindet sich in den FAQ - http://www.acegisecurity.org/faq.html

Andere Tipps

Ich fand die Antwort. In der Regel gibt es eine Standardrolle, die Rollenrolle nennt. Wenn Sie einen neuen Benutzer registrieren, sucht er nach einer Rolle mit diesem Namen und wenn er einen findet, wird er dem Benutzer zugewiesen.

Die Meldung "Standardrolle nicht gefunden" ist mehrdeutig, wie sie gelesen werden kann.

Ich dachte zuerst, es bedeutete: "Sie müssen irgendwo eine Standardrolle definieren, damit neu registrierte Benutzer zugewiesen sind."

Ich denke jedoch, dass es wirklich bedeutet, dass "Sie die Datenbankzeile in Ihrer Rollentabelle erstellen müssen, die als ROLE_USER bezeichnet wird, damit die normale Konfiguration funktioniert".

Es fällt mir auf, dass ein Teil der Grails -Erzeugung der Sicherheitsfunktionen nur einen Rollen- und Rollen- und Rollen- und Rollener -Datenträger in die Datenbank -Bootstrap hinzufügen sollte und die Möglichkeiten des Fehlers getan hat.

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