2011-01-06 11 views
1

Ich habe eine ältere Java-Webanwendung, die Acegi Security verwendet. Ich versuche, alle Java-Scriplets von jsp-Seiten zu entfernen. Gibt es eine ACEGI Tag, die verwendet werden, um den folgenden Ausdruck zu ersetzen:ACEGI-Tag für den Zugriff auf das gerade angemeldete Benutzerobjekt

SecurityContextHolder.getContext().getAuthentication() 

Der obige Ausdruck kehrt der aktuell angemeldeten Benutzerobjekt. Zum Beispiel könnte ich eine JSP-Seite haben, auf der steht: "Hallo, Bob, dein Geburtstag ist am 1. Januar 1980." wo der Name "Bob" und der Geburtstag aus Bobs Benutzerobjekt extrahiert werden.

Hinweis: Ich weiß, dass meine Struts-Aktion das Benutzerobjekt deklarieren und es mit dem Wert des obigen Codes initialisieren kann, aber ich möchte direkt auf den aktuell angemeldeten Benutzer von der JSP-Seite zugreifen.

Antwort

0

Warum generieren Sie nicht Ihre eigene Taglib mit den fehlenden Tags? Es ist sehr einfach zu tun und Sie haben den ganzen Code in einem sehr engen Bereich lokalisiert, falls Sie Änderungen vornehmen möchten (wie bei jedem Einloggen eines Superusers).

0

In Acegi gibt es das eher bizarre authentication Tag.

<authz:authentication operation="name"/> 

ausgegeben dem Wert getName auf dem aktuellen Haupt.

Es ist nicht das nützlichste, aber wäre ein guter Ausgangspunkt, wenn Sie Ihre eigene Version implementieren.