Sa-Token-Quick-Login 可以为一个系统快速的、零代码 注入一个登录页面
试想一下,假如我们开发了一个非常简单的小系统,比如说:服务器性能监控页面, 我们将它部署在服务器上,通过访问这个页面,我们可以随时了解服务器性能信息,非常方便
然而,这个页面方便我们的同时,也方便了一些不法的攻击者,由于这个页面毫无防护的暴露在公网中,任何一台安装了浏览器的电脑都可以随时访问它!
为此,我们必须给这个系统加上一个登录认证,只有知晓了后台密码的人员才可以进行访问
细细想来,完成这个功能你需要:
……
你马上就会发现,写个监控页你一下午就可以搞定,然而这个登录页你却可能需要花上两三天的时间,这是一笔及其不划算的时间浪费
那么现在你可能就会有个疑问,难道就没有什么方法给我的小项目快速增加一个登录功能吗?
Sa-Token-Quick-Login便是为了解决这个问题!
官方文档地址:Sa-Token
现在写一个简单案例,想深入学习的,请自行查看官方文档。
新建一个springboot项目
2.1 引入pom文件
com.alibaba.csp sentinel-core 1.7.2 com.alibaba.csp sentinel-transport-simple-http 1.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,由于没有登录,被拦截了,到了登录页面,输入用户密码,登录后可以看到结果。

下一篇:5.点赞功能 Redis