| 

.NET C# Java Javascript Exception

Benutzerauthentifizierung mit Spring-Security-Core Plugin

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.


Benutzerauthentifizierung mit Spring-Security-Core Plugin

metalhead89 - 09.12.2010 15:01
Hallo liebe Grailsfreunde,

ich bin derzeit dabei ein Sicherheitskonzept in meinem Grails Projekt zu integrieren. Dies würde ich gern mit dem Spring-Security-Plugin durchführen.
Ich habe es jetzt soweit schon mal geschafft, dass ich Benutzer und Rollen anlegen kann um dann einzelne actions mit annotations abzusichern.
Soweit so gut.
Jedoch möchte ich die Autorisation nicht nur auf die Actions beziehen sondern auch auf Tags in GSP-Seiten, damit z.B. ein User mit der Rolle ROLE_USER erst gar nicht die Buttons und Links sieht, die ein User mit der Admin Rolle sehen darf. Dazu müsste ich die Annotations nicht nur in den Controllern anlegen sondern eben auch in den GSP Files. Jedoch soll die Möglichkeit bestehen, dass man in der Runtime User anlegt und ihnen spezifische Rollen zuweisen kann, so das ein User mit der Rolle ROLE_USER z.b. keinen create-Button sieht, aber ein anderer User mit der ROLE_USER schon. Ich habe mir überlegt, da vielleicht eine Mapping-Domain anzulegen aber ich bin da noch zu keinem richtig guten Ergebnis gekommen.
Wenn jemand eine Idee hat wie man so ein Rollenkonzept implementiert, das man während der Laufzeit User anlegen kann und ihnen GSP-spezifische Rollen zuweisen kann, wäre ich über jegliche Hilfe dankbar.

Mit freundlichen Grüßen

Metalhead89


Re: Benutzerauthentifizierung mit Spring-Security-Core Plugin

milkyman - 10.12.2010 09:53
<_42_4c_4f_43_4b_51_55_4f_54_45_ CLASS="bbcode"><_44_49_56_><_53_4d_41_4c_4c_>Zitat<_42_52_ /><_53_54_52_4f_4e_47_><_42_52_ />so das ein User mit der Rolle ROLE_USER z.b. keinen create-Button sieht, aber ein anderer User mit der ROLE_USER <_42_52_ /> Wenn die User-Rolle nicht dafür maßgeblich ist, ob der create-Button sichtbar ist oder nicht, dann muss es dafür eine andere Rolle geben. Und Rollen sind was statisches, da kann man nicht zur Laufzeit neue Rollen anlegen. Was man natürlich kann, ist die Zuordnung von Rollen zu Benutzern zur Laufzeit zu ändern. <_42_52_ /> <_42_52_ /> Mal ganz offen: Gerade im Bereich Security halte ich "irgendwas selbsterdachtes mit mapping" für fatal. Es ist schon schwierig genug, mit den bewährten Bibliotheken sichere Anwendungen zu erstellen. Wenn man stattdessen was eigenes implementieren will, halte ich das für unmöglich. <_42_52_ /> <_42_52_ /> Richtiger aus meiner Sicht ist, dass die Sichtbarkeite des Buttons an einer anderen Rolle hängt. Wir haben in einem Projekt z.B. die Personengruppen User, Manager, Controller, Admin und die Berechtigungen lesen, erstellen, bearbeiten, löschen. Daraus ergeben sich dann die folgenden Rollen: <_42_52_ /> -USER_READ <_42_52_ /> -USER_CREATE <_42_52_ /> -USER_EDIT <_42_52_ /> -USER_DELETE <_42_52_ /> -MANAGER_READ <_42_52_ /> .... <_42_52_ /> <_42_52_ /> Dein create-Button den manchen User sehen und andere nicht hört sich nach einem Fall für ROLE_USER_CREATE an. Aber ohne die Hintergründe zu kennen, lässt sich das schwer beurteilen.<_42_52_ /> <_42_52_ /> Bye, <_42_52_ /> Horst


Re: Benutzerauthentifizierung mit Spring-Security-Core Plugin

Franzi - 20.12.2010 09:59
Hallo Metalhead89,

für deine Anforderung könnte auch das Konzept mit requestmaps nützlich sein. Das ist dafür gedacht, dass zur Laufzeit bestimmte URI's (und damit die views, die die gsp's erzeugen) mit Rechten belegt werden können und soll auch für dynamische URI's funktionieren, wie sie z.B. bei Content Management Systemen erzeugt werden.

Schau mal in die Doku beim Spring Security Core, dort sind requestmaps beschrieben.

(und lass wissen was sich ergeben hat ;-)


Da fällt mir noch was ein:
Für die gsp's gibts auch einige tag libs vom Security UI plugin. Eigentlich alles was man braucht um Knöpfe, Daten, Links und sonstiges GUI-Zeugs je nach Abhängigikeit von Rollen, Rechten, ObEinerEingeloggedIst, ObEinerBekanntIst etc anzuzeigen oder eben nicht. Alles da was man braucht. Der namespace ist, wen wunderts:
 sec:



hoffe das nützt was


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Benutzerauthentifizierung mit Spring-Security-Core Plugin" 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.