Introduktion til Spring Security Taglibs

1. Oversigt

I denne vejledning ser vi på Spring Security Taglibs, som giver grundlæggende support til adgang til sikkerhedsoplysninger og anvendelse af sikkerhedsbegrænsninger i JSP'er.

2. Maven-afhængigheder

Lad os først og fremmest tilføje afhængigheden af ​​forårssikkerhed-taglibs til vores pom.xml:

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

3. Erklæring om taglibs

Nu, inden vi kan bruge tags, skal vi importere taglib øverst i vores JSP-fil:

Når vi har tilføjet dette, kan vi specificere Spring Security's tags med sek præfiks.

4. Den bemyndige Tag

4.1. adgang Udtryk

I vores applikationer har vi muligvis oplysninger, der kun skal vises for bestemte roller eller brugere.

Når dette er tilfældet, kan vi bruge bemyndige tag:

 Login logout 

Desuden kan vi kontrollere, om en godkendt bruger har specifikke roller:

 Administrer brugere 

Og vi kan bruge ethvert Spring Security-udtryk som vores værdi for adgang:

  • hasAnyRole ('ADMIN', 'USER') vender tilbage rigtigt hvis den aktuelle bruger har nogen af ​​de anførte roller
  • isAnonym () vender tilbage rigtigt hvis den nuværende hovedstol er en anonym bruger
  • isRememberMe () vender tilbage rigtigt hvis den nuværende rektor er en husk mig-bruger
  • isFullyAuthenticated () vender tilbage rigtigt hvis brugeren er godkendt og hverken er anonym eller husker mig

4.2. url

Bortset fra det kan vi tjekke for brugere, der har tilladelse til at sende anmodninger til de bestemte webadresser:

 Administrer brugere 

4.3. Fejlfinding

Der kan være tilfælde, hvor vi ønsker mere kontrol over brugergrænsefladen, for eksempel i testscenarier. I stedet for at Spring Security springer over gengivelse af disse uautoriserede sektioner, kan vi indstille spring.security.disableUISecurity=rigtigt i, siger, vores application.properties fil.

Når vi gør dette, bemyndige tag skjuler ikke dets indhold. I stedet indpakker det indholdet med i stedet. Derefter kan vi tilpasse gengivelsen selv med noget CSS.

Husk dog at skjule indhold via CSS ikke er sikkert! Brugeren kan blot se kilden for at se uautoriseret indhold.

5. Den Godkendelse Tag

På andre tidspunkter vil vi gerne vise detaljer om den bruger, der er logget ind, som at sige noget som "Velkommen tilbage, Carol!" på siden.

Til dette bruger vi Godkendelse tag:

 Velkommen tilbage, 

6. Den csrfInput Tag

Forhåbentlig har vi Spring Securitys CSRF-forsvar aktiveret i vores app!

Hvis vi gør det, indsætter Spring Security allerede en CSRF-skjult formindgang indeni tags til os.

Men hvis vi ønsker at bruge i stedet, Vi kan manuelt angive, hvor Spring Security skal placere dette skjulte indtastningsfelt ved hjælp af csrfInput:

  Tekstfelt:

Hvis CSRF-beskyttelse ikke er aktiveret, afgiver dette tag intet.

7. Den csrfMetaTags Tag

Eller, hvis vi ønsker at få adgang til CSRF-token i Javascript, vi vil sandsynligvis indsætte tokenet som et metatag.

Vi kan gøre dette med csrfMetaTags tag:

  JavaScript med CSRF-beskyttelse var csrfParameter = $ ("meta [name = '_ csrf_parameter']"). Attr ("indhold"); var csrfHeader = $ ("meta [name = '_ csrf_header']"). attr ("indhold"); var csrfToken = $ ("meta [name = '_ csrf']"). attr ("indhold"); ... 

Igen, hvis CSRF-beskyttelse ikke er aktiveret, udsender dette tag ikke noget.

8. Konklusion

I denne hurtige artikel fokuserede vi på nogle almindelige brugssager i Spring Security-taglib.

Og som vi har lært, er de meget nyttige til gengivelse af godkendelses- og autorisationsbevidst JSP-indhold.

Alle eksempler kan som altid findes på Github.