Spring Boot(五十九):Sa-Token-Quick-Login插件快速登录认证
创始人
2024-05-25 10:21:55
0

1 Sa-Token-Quick-Login解决的问题

Sa-Token-Quick-Login 可以为一个系统快速的、零代码 注入一个登录页面

试想一下,假如我们开发了一个非常简单的小系统,比如说:服务器性能监控页面, 我们将它部署在服务器上,通过访问这个页面,我们可以随时了解服务器性能信息,非常方便

然而,这个页面方便我们的同时,也方便了一些不法的攻击者,由于这个页面毫无防护的暴露在公网中,任何一台安装了浏览器的电脑都可以随时访问它!

为此,我们必须给这个系统加上一个登录认证,只有知晓了后台密码的人员才可以进行访问

细细想来,完成这个功能你需要:

  1. 编写前端登录页面,手写各种表单样式
  2. 寻找合适的ajax类库,jQuery?Axios?还是直接前后台不分离?
  3. 寻找合适的模板引擎,比如jsp、Thymeleaf、FreeMarker、Velocity……选哪个呢?
  4. 处理后台各种拦截认证逻辑,前后台接口对接
  5. 你可能还会遇到令人头痛欲裂的模板引擎中ContextPath处理

……

你马上就会发现,写个监控页你一下午就可以搞定,然而这个登录页你却可能需要花上两三天的时间,这是一笔及其不划算的时间浪费

那么现在你可能就会有个疑问,难道就没有什么方法给我的小项目快速增加一个登录功能吗?

Sa-Token-Quick-Login便是为了解决这个问题!

2 官方地址

官方文档地址:Sa-Token

现在写一个简单案例,想深入学习的,请自行查看官方文档。

3 代码实现

新建一个springboot项目

2.1 引入pom文件

        com.alibaba.cspsentinel-core1.7.2com.alibaba.cspsentinel-transport-simple-http1.7.2

2.2 编写配置文件

server:port: 8080# Sa-Token-Quick-Login 配置
sa:# 登录账号name: admin# 登录密码pwd: 123456# 是否自动随机生成账号密码 (此项为true时, name与pwd失效)auto: false# 是否开启全局认证(关闭后将不再强行拦截)auth: true# 登录页标题title: Asurplus 登录# 是否显示底部版权信息copr: true# 指定拦截路径include: /**# 指定排除路径exclude: /test#循环依赖
spring:main:allow-circular-references: true

2.3 测试案例

package com.example.demo;import cn.dev33.satoken.quick.SaQuickManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringquickloginApplication {public static void main(String[] args) {SpringApplication.run(SpringquickloginApplication.class, args);System.out.println("\n------ 启动成功 ------");//显示插件设置的密码,如果设置的随机的,这边直接显示System.out.println("name: " + SaQuickManager.getConfig().getName());System.out.println("pwd:  " + SaQuickManager.getConfig().getPwd());}
}

package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {/*** 不需要认证** @return*/@GetMapping("test")public String test() {return "test";}/*** 需要认证** @return*/@GetMapping("test1")public String test1() {return "test1";}
}

访问 http://localhost:8080/test

访问 http://localhost:8080/test1,由于没有登录,被拦截了,到了登录页面,输入用户密码,登录后可以看到结果。

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
【前端】‘??‘与‘||‘有什... 0 问题 经常写const data = res.data.a ?? ''或者const d...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...