Рубрики
Без рубрики

Введение в весенние теги безопасности

Узнайте, как использовать библиотеку тегов Spring Security в JSPs для более точного контроля ваших представлений.

Автор оригинала: Hai Nguyen.

1. Обзор

В этом учебнике мы посмотрим на Весенняя безопасность Taglibs , которая обеспечивает базовую поддержку для доступа к информации о безопасности и применения ограничений безопасности в JSPs.

2. Мейвен зависимостей

Прежде всего, давайте добавим весна-безопасность-taglibs зависимость от нашей пом.xml :


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

3. Объявление таглибов

Теперь, прежде чем мы сможем использовать теги, мы должны импортировать taglib в верхней части нашего файла JSP:

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

После добавления этого мы сможем указать теги Spring Security с помощью сек приставка.

4. Авторизовать тег

4.1. Выражения доступа

В наших приложениях мы можем иметь информацию, которая должна быть показана только для определенных ролей или пользователей.

Когда это так, мы можем использовать авторизовать ярлык:


  Login


  Logout

Кроме того, мы можем проверить, есть ли у аутентифицированного пользователя конкретные роли:


    Manage Users

И мы можем использовать любую Весеннее выражение безопасности как наша ценность для доступ :

  • имеетAnyRole (‘ADMIN’,’USER’) возвращает истинное если текущий пользователь имеет какую-либо из перечисленных ролей
  • isAnonymous () возвращает истинное если текущий директор является анонимным пользователем
  • isRememberMe () возвращает истинное если текущий директор является пользователем remember-me
  • isFullyАфентика () возвращает истинное если пользователь проверен и не является ни анонимным, ни помнить меня пользователя

4.2. URL

Помимо этого, мы можем проверить для пользователей, которые уполномочены отправлять запросы на определенные URL-адреса:

4.3. Отладка

Могут быть случаи, когда мы хотим больше контроля над пользовательским интерфейсом, например в сценариях тестирования. Вместо того, чтобы spring Security пропустить визуализацию этих несанкционированных разделов, мы можем установить spring.security.disableUISecurity = истинное в, скажем, нашей application.properts файл.

Когда мы это сделаем, авторизовать тег не будет скрывать его содержимое. Вместо этого он обернет содержимое теги вместо этого. Затем мы можем настроить визуализацию с помощью некоторых CSS.

Помните, однако, что сокрытие контента через CSS не является безопасным! Пользователь может просто просмотреть источник, чтобы увидеть несанкционированное содержимое.

5. Тег аутентификации

В других случаях, мы хотим, чтобы отобразить подробную информацию о зарегистрированных пользователей, как сказать что-то вроде “Добро пожаловать, Кэрол!” На сайте.

Для этого мы используем проверка ярлык:


    Welcome Back, 

6. Тег csrfInput

Надеюсь, у нас есть защита CSRF весенней безопасности включена в нашем приложении!

Если мы это сделаем, то Spring Security уже вставляет скрытый вход формы CSRF внутри <форма:форма> теги для нас.

Но в случае, если мы хотим использовать

вместо этого, мы можем вручную указать, где Spring Security должна разместить это скрытое поле ввода с помощью csrfInput :

Text Field:

Если защита CSRF не включена, этот тег ничего не выводит.

7. Тег csrfMetaTags

Или, если мы хотим получить доступ к токену CSRF в Javascript, Вероятно, мы захоем вставить токен в качестве мета-тега.

Мы можем сделать это с csrfMetaTags ярлык:


    
        JavaScript with CSRF Protection
        
        
    
    
    ...
    

Опять же, если защита CSRF не включена, этот тег ничего не выготовит.

8. Заключение

В этой быстрой статье мы сосредоточились на некоторых общих случаях использования Spring Security taglib.

И, как мы узнали, они очень полезны для визуализации аутентификации и авторизации известного содержания JSP.

Все примеры, как всегда, можно найти более на Github .