Серия руководств по Spring Boot | Сто один: SpringBoot интегрирует структуру разрешений sa-token

Spring Boot
Серия руководств по Spring Boot | Сто один: SpringBoot интегрирует структуру разрешений sa-token

предисловие

В прошлой разработке веб-проекта чаще всего использовались две структуры разрешений: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. Получите исходный код

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

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. Исходный код

GitHub.com/думая трава…


2. Ссылка

Официальная документация:sa-token.dev33.cn/


Суммировать

Каждый фреймворк Java имеет свои преимущества и недостатки в разное время по сравнению сShiro,Spring Security Для этих платформ разрешений sa-token является относительно легким, потому что sa-token инкапсулирует только некоторые часто используемые функции, такие как проверка входа в систему, проверка разрешений, настраиваемый сеанс сеанса и отключение людей от сети.Это мощный, простой и удобный в использовании инструмент. -использовать программное обеспечение.

Нажмите и удерживайте QR-код на картинке ниже и подпишитесь на публичный аккаунт Thinking Cao. На пути к архитектуре Java я хочу двигаться вперед вместе с вами и добиваться прогресса вместе!