В этой статье вводит метод Spring Security для управления авторизацией и делится им с вами следующим образом:
Используйте метод авторизации для настройки авторизации
Каждое выражение авторизации управления безопасности весны (в дальнейшем, называемом выражением), фактически соответствует методу авторизации в API, который является методом обработки, когда настроены запрашиваемые разрешения URL -адреса. Например:
@OverrideProtected void configure (httpsecurity http) бросает исключение {http.authorizeRequests () .antmatchers (httpmethod.delete, "/user/*"). .antmatchers ("/pay"). Hasanyrole ("we_chat_pay", "ali_pay") .antmatchers ("/debug"). hasipaddress ("192.168.1.0/24");}Используйте выражения авторизации для авторизации запросов на несколько разрешений
Итак, когда вам нужно использовать выражения для обработки авторизации? Требования к разрешению заявки на безопасность часто являются сложными и разнообразными. Например, запрос отладки проекта ожидает, что посетитель будет иметь как права администратора, и должен получить к нему доступ через внутреннюю локальную сеть компании. В соответствии с такими требованиями методы, предоставленные API безопасности, не могут быть выполнены только потому, что эти методы авторизации не могут быть называться непрерывно.
Вы можете использовать выражения авторизации для решения этой проблемы:
@OverrideProtected void configure (httpsecurity http) бросает исключение {http.authorizerequests () .antmatchers ("/debug") .access ("hasrole ('admin') и hasipaddress ('192.168.1.0/24')");Пример выражения авторизации
| выражение | иллюстрировать |
|---|---|
| разрешение | Вернуть истину навсегда |
| denyall | Вернуть ложь навсегда |
| необычный | Если текущий пользователь является анонимным пользователем, верните True |
| запомнить меня | Если текущий пользователь помнит, верните True |
| аутентифицирован | Если текущий пользователь не является анонимным (аутентифицированным) пользователем, верните True |
| Полный | Вернуть True, если текущий пользователь не является ни анонимным, ни помните пользователь |
| Hasrole (роль) | Если у вас есть указанные разрешения ролевой роли в текущей сборе разрешений пользователей (при сопоставлении, «ROL_» будет добавлено до указанных вами разрешений, то есть, если вы определите, есть ли разрешение «role_role»), верните True. |
| Хасанирол (Role1, Role2, ...) | Вернуть True, если у вас есть какие -либо роли разрешения в текущей сборе разрешений пользователей |
| Hasauthority (авторитет) | Вернуть True, если текущие разрешения пользователя имеют полномочия (соответствует ли разрешение «авторитет») в текущей сборе разрешений пользователей. |
| hasanyauthority (авторитет) | Верните True, если у вас есть какие -либо разрешения в текущей коллекции разрешений пользователей |
| hasipaddress ("192.168.1.0/24") | FanHui True при отправке запрошенного IP -совпадения |
RBAC контроля доступа на основе ролей (контроль доступа на основе ролей)
Возможно, вы подумаете, что приведенный выше метод может соответствовать управлению авторизацией безопасности большинства приложений. Однако на самом деле разрешение приложений на уровне предприятия часто основано на динамических изменениях в данных базы данных. Если выше используется сплайсинг строк, он будет не только чрезвычайно недружелюбным для разработчиков (каждое изменение в персонале означает, что код должен быть изменен, что, очевидно, неразумно), но эффективность приложения также будет сокращена соответственно. Итак, как это решить?
Модель данных
Общая модель данных RBAC обычно требует пять таблиц (три таблицы объектов и две таблицы взаимоотношений). Три таблицы объектов включают таблицу пользователей, таблицу ролей и таблицу ресурсов. Две таблицы отношений включают. Отношения между ними следующие:
Модель данных RBAC
Пользовательский стол
У любого пользователя должен быть пользовательский таблица. Когда компания меняет персонал, бизнес -персонал (например, человеческие ресурсы) добавит и удаляет таблицу данных.
Ролевой список
Какие личности имеют компанию, например, президент, вице -президент, менеджер департамента и т. Д., И есть бизнес -персонал, которые управляют данными на таблице на основе конкретной ситуации компании.
Список ресурсов
Хранить ресурсы, которые требуют контроля разрешения. Поскольку мы на самом деле используем URL -адреса, когда используем авторизацию управления, бизнес -персонал не организует записи данных в соответствии с URL -адресами, а вместо этого работаем в виде интерфейса представления. Таким образом, в этой таблице меню и кнопки, представленные бизнес -персоналу, и URL -адреса, которые контролируются разрешениями.
Таблица взаимоотношений пользователя
Между таблицей пользователей и таблицей ролей существует много-ко-ко многим отношениям (идентификатор пользователя и идентификатор роли). Пользователь может быть несколькими ролями (пользователь может быть как менеджером департамента, так и администратором), в то время как роль часто соответствует нескольким пользователям.
Таблица взаимоотношений ролевых ресурсов
Таблица ролей и таблица ресурсов () также являются много-ко многим отношениям. Роль может получить доступ к нескольким ресурсам (кнопки или меню и т. Д.), А также доступ к ресурсу также можно получить множество ролей.
Spring Security также поддерживает пользовательские выражения для выполнения работы, как это
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.