| 

.NET C# Java Javascript Exception

Grails + Acegi Security

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Grails + Acegi Security

Xava - 12.02.2009 11:11
Hi

Also ich bin am herumbasteln mit der Acegi Security. Aber irgendwie find ich keine guten Erklärungen der Möglichkeiten des Plugins. Überall finde ich nur die ganz billigen Einsteigertutorials mit URL Secure per Requestmap.

Also bei meiner Applikation soll auf der Startseite ein Login-Fenster erscheinen. Benutzer gibt es 2 Sorten(Rollen), Admins und Users. Beide haben eine unterschiedliche home-Seite (sprich view/userHome.gsp und view/adminHome.gsp).

Wie kann ich nun ein login realisieren wo der Benutzer dann je nach typ auf die richtige Home-Seite weitergeleitet wird?

Für das login Fenster habe ich <form action='${request.contextPath}/j_spring_security_check' method='POST' id='loginForm' class='cssform'> gefunden, aber ich verstehe nicht ganz was dann ablaufen soll...

Beim stöbern bin ich noch über den AuthenticateService gestolpert. Mit diesem könnte ich ja die Rollen überprüfen beim einloggen, aber ich peile nich wo ich den einbauen soll...


Bitte um Hilfe :)

Gruss,
Xava


Re: Grails + Acegi Security

resolution-m - 12.02.2009 12:25
Hi!

Eine wirklich gute Anleitung habe ich auch noch nicht gefunden, aber wenn die Unterschiede der beiden Homesites nur sehr gering sind, kann man das eigentlich auch anders lösen. Acegi bietet da die Tags ifGranted, ifAllGranted, etc. an. Anhand der kannst du z.B. entscheiden, ob es sich bei dem angemeldeten Benutzer um einen Administrator handelt und dann eben Buttons für die Bearbeitung der Daten einblenden. Dann brauchst du keine Unterscheidung im Controller machen und musst keine verschiedenen Homesites erstellen!

Viele Grüße
Martin

P.S.: Ich hab es bei mir ähnlich, im Menü gibt es einen extra Punkt "Administration", der nur eingeblendet wird, wenn es sich bei dem angemeldeten Benutzer um einen Admin handelt.


Re: Grails + Acegi Security

Zigu - 12.02.2009 12:52
Hi,

sollte der Unterschied mal doch etwas größer sein, ist der Aufwand auch etwas höher das einzubauen. Dazu würde ich dann einfach die Anleitungen auf [www.acegisecurity.org] empfehlen. Leider kommt man dann nämlich nicht umhin die klassische XML-Konfiguration zu verwenden in der man auch Klassen definieren kann, die das normale Verhalten überschreiben. Das Plugin berücksichtigt normalerweise auch diese XML-Konfiguration.

In deinem Fall wäre das der AuthenticationProcessingFilter, die irgendwann mal die Methode
determineTargetUrl()
aufruft. Diese müsste dann überschrieben werden.

rob


Re: Grails + Acegi Security

Xava - 12.02.2009 13:42
alles klar danke erstmal für eure hilfe, ich probiers mit dem ifGranted.


aber trotzdem noch zum der anderen möglichkeit, ich habe ein beispiel wo zwischen rollen unterschieden wird und dann je nach dem auf eine andere home seite weitergeleitet wird.

<form action='${request.contextPath}/j_spring_security_check' method='POST' id='loginForm' class='cssform'>
                    <table id="loginTable">
                        <tr>
                            <td>
                                <label for='j_username'>E-Mail</label>
                            </td>
                            <td>
                                <input type='text' class='text_' name='j_username' id='j_username'/>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label for='j_password'>Passwort</label>
                            </td>
                            <td>
                                <input type='password' class='text_' name='j_password' id='j_password'/>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label for='remember_me'>Remember me</label>
                            </td>
                            <td>
                                <input type='checkbox' class='chk' id='remember_me' name='_spring_security_remember_me'>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2"><input type='submit' value='Login'/></td>
                        </tr>
                    </table>
                </form>

wohin verweist hier das login?


Re: Grails + Acegi Security

resolution-m - 12.02.2009 14:23
Hi!

Soweit nicht anders definiert, leitet j_spring_security_check im Erfolgsfall immer nach Root (sprich "/") weiter.

Viele Grüße
Martin


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Grails + Acegi Security" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.