declarative-security

___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123jsf ___ JavaServer Faces (JSF) ist ein Model-View-Presenter-Framework, das normalerweise zum Erstellen von HTML-Formular-basierten Webanwendungen verwendet wird. Mit den Standardkomponenten und dem Render-Kit können statusbehaftete HTML-Ansichten mithilfe von Facelets oder JSP-Tags definiert und über Backing-Beans mit Daten und Anwendungslogik verknüpft werden. ___ tag123servlets ___ Servlet ist eine Java-Anwendungsprogrammierschnittstelle (API), die auf dem Server-Rechner läuft und die Anfragen des Clients abfangen und entsprechend eine Antwort generieren / senden kann. ___ tag123jsf2 ___ JavaServer Faces (JSF) ist ein Model-View-Presenter-Framework, das normalerweise zum Erstellen von Webanwendungen verwendet wird. Version 2.x ist gegenüber JSF 1.x einen großen Schritt voraus und erweitert den Standardsatz an Komponenten und Komponentenbibliotheken erheblich. ___ qstnhdr ___ Ist (isUserInRole ()) der einfachste Weg, um Benutzerberechtigungen / Sicherheit an eine JSF-Schaltfläche anzuhängen? ___ answer11159380 ___

Wenn Sie Tomahawk als Addon für Ihre JSF-Implementierung verwenden, haben die meisten Steuerelemente ein visibleOnUserRole-Attribut. Sie können im Wert mehrere Rollennamen verwenden.

    
___ qstntxt ___

Ich habe kürzlich eine Tomcat-Web-App in JSP entwickelt, die deklarative Sicherheit (server.xml / web.xml) verwendet, die an das Active Directory des Unternehmens gebunden ist. Ich wurde gebeten, dem jungen Projekt JSF-Unterstützung hinzuzufügen. Es war eine einfache Sache, das Login-Formular in jsf umzuwandeln, und das Sicherheitsmodell funktionierte immer noch.

Ein Mitarbeiter fragte, ob ich einem größeren Publikum erlauben könnte, einen der Berichte anzuzeigen, aber die Aktionsschaltflächen nur für eine kleinere Gruppe rendert. Da ich neu bei JSF war, musste ich etwas recherchieren.

Ich habe ungefähr vier Stunden damit verbracht, Dinge wie "jsf-Knopfsicherheit" und "jsf-Knopfberechtigungen" zu googeln und verschiedene Vorschläge auszuprobieren, die meistens Sackgassen waren. Ein anderer Mitarbeiter hatte vorgeschlagen, das Spring-Sicherheitsmodell zu verwenden, aber ich wollte nicht mit einer ganzen Reihe Spring-Bibliotheken arbeiten, wenn es einen einfacheren Weg dafür gäbe.

Schließlich stieß ich auf die Antwort, die unglaublich einfach war. Ich brauchte nur die HttpServletRequest-Methode zu verwenden: isUserInRole (), um festzustellen, ob der aktuell angemeldete Benutzer berechtigt ist, die Aktionsschaltflächen zu sehen. Ich habe HttpServletRequests eine Menge in den letzten zehn Jahren verwendet, aber ich erinnere mich nicht, jemals über diese Methode zu lernen. Mit jsf ist es eine einfache Sache, wie unten gezeigt zu dieser Methode zu gelangen:

%Vor%

Meine Fragen speziell sind: Gibt es irgendwelche Probleme mit diesem Ansatz, den ich beachten sollte, und gibt es einen anderen einfacheren Weg, es zu tun?

    
___ tag123declarativeSecurity ___ Die deklarative Sicherheit ist eine Syntax, die [tag: attributes] verwendet, um Sicherheitsinformationen in [tag: metadata] des Codes zu platzieren. ___
1
Antwort

Ist (isUserInRole ()) der einfachste Weg, um Benutzerberechtigungen / Sicherheit an eine JSF-Schaltfläche anzuhängen?

Ich habe kürzlich eine Tomcat-Web-App in JSP entwickelt, die deklarative Sicherheit (server.xml / web.xml) verwendet, die an das Active Directory des Unternehmens gebunden ist. Ich wurde gebeten, dem jungen Projekt JSF-Unterstützung hinzuzufügen...
26.05.2012, 05:26