предисловие
В прошлой разработке веб-проекта чаще всего использовались две структуры разрешений:Shiro
а такжеSpring Security
,Shiro
Легкий, низкий порог входа, относительно мощные функции;Spring Security
Фон мощный, функции богаты, порог входа относительно высок, а конфигурация немного сложна.Исходный код открыт командой Spring. Теперь мы представим легкую, мощную и практически не требующую настройки структуру полномочий sa-token.sa-token — это мощная, простая и легкая в использовании структура проверки подлинности JavaWeb.
1. Основные знания
1. Что такое са-токен
sa-token
ЯвляетсяJavaWeb
Инфраструктура авторизованной аутентификации, мощная, простая и легкая в использовании
Проверка входа, проверка полномочий, настраиваемый сеанс сеанса, отключение людей в автономном режиме, расширение слоя сохраняемости, режим без файлов cookie, выдача себя за учетные записи других людей, система с несколькими учетными записями, аутентификация по аннотациям, интеграция Spring...
Нулевая конфигурация из коробки, охватывающая все сценарии применения, здесь доступны все необходимые вам функции
По сравнению с другими фреймворками аутентификации авторизации, sa-token имеет следующие два преимущества:
- Легко начать работу: все автоматизированные конфигурации автоматизированы, поэтому вам не нужно об этом беспокоиться
- Мощные функции: охватываются все функции, которые можно охватить, и вам не нужно использовать фреймворк для самостоятельного внесения различных патчей в фреймворк.
2. са-токен 😋
Онлайн-документация:sa-token.dev33.cn/
3. Преимущества фреймворка
По сравнению с другими платформами аутентификации авторизации,sa-token
Сделайте все возможное, чтобы обеспечить две вещи:
Легко начать работу: все автоматизированные конфигурации автоматизированы, поэтому вам не нужно об этом беспокоиться Мощные функции: охватываются все функции, которые можно охватить, и вам не нужно использовать фреймворк для самостоятельного внесения различных патчей в фреймворк.
2. Покрываемые функции
- Аутентификация входа
- АСД
- пользовательский сеанс сеанса
- выгнать кого-либо из сети
- Выдавать себя за чужой аккаунт
- Расширение уровня сохраняемости (интегрировано с Redis)
- Система аутентификации с несколькими учетными записями (например, таблица пользователей и таблица администратора проекта торгового центра)
- Режим без файлов cookie (сценарии разделения интерфейса и сервера, такие как приложение, апплет и т. д.)
- Аннотированная аутентификация (элегантно отделяет аутентификацию от бизнес-кода)
- Интеграция нулевой конфигурации с такими фреймворками, как Spring
- ...
3. Интеграция
1. maven-зависимости
напрямую через проектpom.xml
импортsa-token
может зависеть от
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token</artifactId>
<version>1.4.0</version>
</dependency>
2. Получите исходный код
- адрес гитхаба: GitHub.com/click33/splash-…
- гит адрес: git ee.com/even6/sprinkle-to-can…
3. скачать пакет jar
Нажмите, чтобы скачать: sa-token-1.4.0.jar
4. Подготовка
Эта статья поможет вам интегрировать sa-token с нуля, чтобы вы могли быстро ознакомиться с использованием sa-token на примере maven + springboot.
5. Инженерное строительство
1. Создайте проект SpringBoot
1.2 Знакомство с зависимостью sa-token
<!-- sa-token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token</artifactId>
<version>1.4.0</version>
</dependency>
2. Введите зависимости пакета jar
- Добавьте зависимости в pom.xml, полный pom выглядит следующим образом:
<!-- web应用依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok代码简化工具 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- sa-token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token</artifactId>
<version>1.4.0</version>
</dependency>
3. Файл конфигурации
- Вы можете запустить проект с нулевой конфигурацией
- Но в то же время вы также можете добавить следующую конфигурацию в application.yml, чтобы настроить использование фреймворка:
server:
port: 8070
spring:
# sa-token配置
sa-token:
# token名称(同时也是cookie名称)
token-name: satoken
# token有效期,单位s 默认30天
timeout: 2592000
# 在多人登录同一账号时,是否共享会话(为true时共用一个,为false时新登录挤掉旧登录)
is-share: true
# 是否在cookie读取不到token时,继续从请求header里继续尝试读取
is-read-head: true
# 是否在header读取不到token时,继续从请求题参数里继续尝试读取
is-read-body: true
# 是否在初始化配置时打印版本字符画
is-v: true
- Если вы привыкли к файлам конфигурации типа application.properties, это тоже нормально:
- Байду:Разница между свойствами springboot и файлом конфигурации yml
4. Создайте основной класс
Создать новый пакет в проектеcom.pj
, создайте новый основной класс в этом пакетеSaTokenDemoApplication.java
, введите следующий код:
@SaTokenSetup // 标注启动 sa-token
@SpringBootApplication
public class SaTokenDemoApplication {
public static void main(String[] args) throws JsonProcessingException {
SpringApplication.run(SaTokenDemoApplication.class, args); // run-->
System.out.println("启动成功:sa-token配置如下:" + SaTokenManager.getConfig());
}
}
5. Беги
Запустите код, когда вы увидите что-то вроде следующего в консоли, это означает, что фреймворк успешно интегрирован.
6. Обычная весенняя обстановка
обычныйspring
окружающая среда иspringboot
Среда в основном такая же, за исключением того, что вам нужно вручную создать файл конфигурации в корневом каталоге проекта.sa-token.properties
для завершения настройки.
Семь, введение в общий API sa-token
Официальный предоставляет ряд общих API-интерфейсов, вот лишь краткое введение в интерфейс API, связанный с входом в систему:scatter-token.Dev33.может /doc/#/use/ прийти…
1. Проверка входа
1.1 Основная идея
- Грубо говоря, так называемая проверка входа в систему ограничивает определенные интерфейсы, доступ к которым возможен только после входа в систему (например, запрос информации о моей учетной записи).
- Как узнать, вошли ли вы в систему? Конечно, после успешного входа я отмечу вас
- Проверьте отметку в интерфейсе, который необходимо аутентифицировать.Те, у кого есть отметки, считаются авторизованными, а те, у кого нет отметок, считаются не авторизованными
- В соответствии с приведенными выше идеями мы можем легко представить себе следующие API:
1.2 Конкретный API
StpUtil.setLoginId(Object loginId)
- Отметьте идентификатор учетной записи, зарегистрированный в текущем сеансе
- Предлагаемый тип параметра: long | int | String, сложные типы, такие как User, Admin и т. д., не могут быть переданы в
StpUtil.logout()
- Выход из текущей сессии
StpUtil.isLogin()
- Получить, вошел ли текущий сеанс в систему, вернуть true = вошел в систему, false = не вошел в систему
StpUtil.checkLogin()
- Проверьте, зарегистрирован ли текущий сеанс, если нет, сгенерируйте исключение: NotLoginException
- Расширение: объект NotLoginException может получить конкретное исключение, созданное StpLogic, с помощью метода getLoginKey().
StpUtil.getLoginId()
Получите текущий идентификатор входа в сеанс, если вы не вошли в систему, создайте исключение: NotLoginException Подобные API:
StpUtil.getLoginIdAsString() Получить текущий идентификатор входа в сеанс и преобразовать его в тип String
StpUtil.getLoginIdAsInt() Получить текущий идентификатор входа в сеанс и преобразовать его в тип int
StpUtil.getLoginIdAsLong() Получить текущий идентификатор входа в сеанс и преобразовать его в длинный тип
StpUtil.getLoginId(T defaultValue)
- Получить текущий идентификатор входа в сеанс, если вы не вошли в систему, вернуть значение по умолчанию (defaultValue может быть любого типа)
- Подобные API:
StpUtil.getLoginId_defaultNull() Получить идентификатор входа в текущую сессию, если вход не выполнен, вернуть null
getLoginIdByToken(String tokenValue)
- Получите идентификатор входа, соответствующий указанному токену, или верните значение null, если вы не вошли в систему.
Восемь, тест проекта
1. Запустите проект SpringBoot
Запустите пример проекта SpringBoot и управляйте печатью информации о маркере sa следующим образом:
Девять, загрузка исходного кода
1. Исходный код
2. Ссылка
Официальная документация:sa-token.dev33.cn/
Суммировать
Каждый фреймворк Java имеет свои преимущества и недостатки в разное время по сравнению сShiro
,Spring Security
Для этих платформ разрешений sa-token является относительно легким, потому что sa-token инкапсулирует только некоторые часто используемые функции, такие как проверка входа в систему, проверка разрешений, настраиваемый сеанс сеанса и отключение людей от сети.Это мощный, простой и удобный в использовании инструмент. -использовать программное обеспечение.
Нажмите и удерживайте QR-код на картинке ниже и подпишитесь на публичный аккаунт Thinking Cao. На пути к архитектуре Java я хочу двигаться вперед вместе с вами и добиваться прогресса вместе!