Einführung in Spring Security Taglibs

Einführung in Spring Security Taglibs

1. Überblick

In diesem Lernprogramm sehen wir unsSpring Security Taglibs an, das grundlegende Unterstützung für den Zugriff auf Sicherheitsinformationen und das Anwenden von Sicherheitsbeschränkungen in JSPs bietet.

2. Maven-Abhängigkeiten

Fügen wir zunächst die Abhängigkeit vonspring-security-taglibszu unserenpom.xmlhinzu:


    org.springframework.security
    spring-security-taglibs
    5.0.7.RELEASE

3. Taglibs deklarieren

Bevor wir die Tags verwenden können, müssen wir die Taglib oben in unserer JSP-Datei importieren:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

Nachdem Sie dies hinzugefügt haben, können Sie die Tags von Spring Security mit demsec -Sprrefix angeben.

4. Dasauthorize-Tag

4.1. access Ausdrücke

In unseren Anwendungen sind möglicherweise Informationen enthalten, die nur für bestimmte Rollen oder Benutzer angezeigt werden sollten.

In diesem Fall können wir dasauthorize-Tag verwenden:


  Login


  Logout

Außerdem können wir prüfen, ob ein authentifizierter Benutzer bestimmte Rollen hat:


    Manage Users

Und wir können jedesSpring Security expression als unseren Wert füraccess verwenden:

  • hasAnyRole(‘ADMIN','USER') gibttrue zurück, wenn der aktuelle Benutzer eine der aufgelisteten Rollen hat

  • isAnonymous() gibttrue zurück, wenn der aktuelle Principal ein anonymer Benutzer ist

  • isRememberMe() gibttrue zurück, wenn der aktuelle Principal ein Remember-Me-Benutzer ist

  • isFullyAuthenticated() gibttrue zurück, wenn der Benutzer authentifiziert ist und weder anonym noch ein Remember-Me-Benutzer ist

4.2. url

Ansonsten können wir nach Benutzern suchen, die berechtigt sind, Anfragen an bestimmte URLs zu senden:

4.3. Debuggen

Es kann Fälle geben, in denen wir mehr Kontrolle über die Benutzeroberfläche wünschen, beispielsweise in Testszenarien. Anstatt Spring Security das Rendern dieser nicht autorisierten Abschnitte überspringen zu lassen, können wirspring.security.disableUISecurity =true beispielsweise in unsererapplication.properties-Datei festlegen.

When we do this, the authorize tag won’t hide its contents. Stattdessen wird der Inhalt stattdessen mit<span class=”securityHiddenUI”>… </span> Tags umbrochen. Anschließend können wir das Rendering selbst mit CSS anpassen.

Remember though that hiding content via CSS isn’t secure! Der Benutzer kann einfach die Quelle anzeigen, um nicht autorisierten Inhalt anzuzeigen.

5. Dasauthentication-Tag

Zu anderen Zeiten möchten wir Details zum angemeldeten Benutzer anzeigen, z. B. "Willkommen zurück, Carol!" auf der Website.

Dafür verwenden wir den Hirschauthentication :


    Welcome Back, 

6. DascsrfInput-Tag

Hoffentlich haben wir die CSRF-Verteidigung von Spring Security in unserer App aktiviert!

Wenn wir dies tun, fügt Spring Security bereits eine CSRF-Eingabe für versteckte Formulare in<form:form> Tags für uns ein.

Für den Fall, dass wir stattdessen<form> verwenden möchten,we can manually indicate where Spring Security should place this hidden input field using csrfInput:

Text Field:

Wenn der CSRF-Schutz nicht aktiviert ist, gibt dieses Tag nichts aus.

7. DascsrfMetaTags-Tag

Oderif we’re wanting to access the CSRF token in Javascript, Wir möchten das Token wahrscheinlich als Meta-Tag einfügen.

Wir können dies mit dem HirschcsrfMetaTags tun:


    
        JavaScript with CSRF Protection
        
        
    
    
    ...
    

Wenn der CSRF-Schutz nicht aktiviert ist, gibt dieses Tag nichts aus.

8. Fazit

In diesem kurzen Artikel haben wir uns auf einige gängige Spring Security-Taglib-Anwendungsfälle konzentriert.

Und, wie wir erfahren haben, sind sie sehr nützlich, um JSP-Inhalte für Authentifizierung und Autorisierung zu rendern.

Alle Beispiele finden sich wie immer inover on Github.