2010-12-30 5 views
0

I Federsicherheitskern konfiguriert haben Plugin requestMap Tabelle in der Datenbank mit ..Problem Menü im Umgang - Untermenü basierend auf Feder Sicherheit

nun innerhalb requestMap Tabelle habe ich alle möglichen Urls und es ist gleichwertig Rollen, die die zugreifen können url ...

Jetzt möchte ich Menüs und Untermenüs auf den in requestMap Tabelle gespeichert URLs generieren ...

Also meine Forderung ist die URLs der Menü & Untermenüs gegen den angemeldeten Benutzer Privilegien zu überprüfen. .. Und wenn eingeloggte Benutzer ein Privileg haben, muss ich das anzeigen Hauptmenü und die verfügbaren Untermenüs ....

Für z.B. Ich habe ein Menü in meinem Projekt mit dem Namen Benutzer, die eine folgende Untermenü:

**Users (main menu)** 
Manage Users (sub menu) 
Import Users (sub menu) 

Jetzt in meinem header.gsp ich erfolgreich die oben genannten Anforderungen erreicht hat, wenn sonst Bedingung verwendet wird, wie:

if (privs.contains("https://stackoverflow.com/users/manageUsers") || privs.contains("https://stackoverflow.com/users/importUsers")) 

hier privs ist die Liste der URLs aus der requestmap-Tabelle für den angemeldeten Benutzer.

Aber ich will diese mit Federsicherheitsetikett lib erreichen, so dass für Urls Vergleich ich folgenden Tag aus Federsicherheitskerndokumentation finden haben:

<sec:access url="https://stackoverflow.com/users/manageUsers"> 

Aber ich verwirren bin etwas, dass, wie ich ersetzen kann oder Zustand Verwenden der Tag-Bibliothek. Gibt es ein Tag, das von mehreren URLs prüft und es auf wahr oder falsch auswertet?

Natürlich kann ich sec: access-Tag mit einigen Flag-Logik, aber gibt es Tags zur Verfügung, die meine Anforderung direkt erfüllen können?

Vielen Dank im Voraus ...

Antwort

1

Die <sec:access/>-Tag hat eine expression Attribut, das den Ausdruck auswerten werden Sie es passieren: http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/guide/6%20Helper%20Classes.html#6.1%20SecurityTagLib

Sie auch ganz einfach Ihre eigenen logical tag, die den Tag erstellen könnte rendert body nur dann, wenn Ihre oben genannte Berechtigungsprüfungsbedingung wahr ist.

+0

danke für Ihre Antwort ... aber auch mit Ausdruck-Tag, wie ich mehrere URLs in einem einzigen Ausdruck überprüfen kann? – Nirmal