Spring Boot 2.x基础教程:使用@Scheduled实现定时任务
项目简介
Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0 等一系列权限相关问题。
框架集成简单、开箱即用、API设计清爽,通过Sa-Token,你将以一种极其简单的方式实现系统的权限认证部分。
功能结构图
认证流程图
项目特性
- API简单易用,文档介绍详细,且提供直接可用的集成示例。
- 支持三种模式,不论是否跨域、是否共享Redis,都可以完美解决。
- 安全性高:内置域名校验、Ticket校验、秘钥校验等,杜绝Ticket劫持、Token窃取等常见攻击手段(文档讲述攻击原理和防御手段)
- 不丢参数:作者曾试验多个单点登录框架,均有参数丢失的情况,比如重定向之前是:
http://a.com?id=1&name=2
,登录成功之后就变成了:http://a.com?id=1,Sa-Token-SSO
内有专门的算法保证了参数不丢失,登录成功之后原路返回页面 - 无缝集成:由于Sa-Token本身就是一个权限认证框架,因此你可以只用一个框架同时解决权限认证 + 单点登录问题,让你不再到处搜索:xxx单点登录与xxx权限认证如何整合……
- 高可定制:Sa-Token-SSO模块对代码架构侵入性极低,结合Sa-Token本身的路由拦截特性,你可以非常轻松的定制化开发
代码示例
登录验证示例
// 在登录时写入当前会话的账号id
StpUtil.login(10001);// 然后在任意需要校验登录处调用以下API
// 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
StpUtil.checkLogin();复制代码
权限认证示例
@SaCheckPermission("user:add")
@RequestMapping("/user/insert")
public String insert(SysUser user) {// ... return "用户增加";
}复制代码
一行代码实现功能
StpUtil.login(10001); // 标记当前会话登录的账号id
StpUtil.getLoginId(); // 获取当前会话登录的账号id
StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false
StpUtil.logout(); // 当前会话注销登录
StpUtil.logoutByLoginId(10001); // 让账号为10001的会话注销登录(踢人下线)
StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false
StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false
StpUtil.getSession(); // 获取当前账号id的Session
StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值
StpUtil.login(10001, "PC"); // 指定设备标识登录
StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响)
StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号复制代码
需要相关java资料的可以扫一扫 备注【java】
Spring Boot 2.x基础教程:使用@Scheduled实现定时任务相关推荐
- Spring Boot 2.x基础教程:使用Elastic Job的分片配置
上一篇,我们介绍了如何使用Elastic Job实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-2/).解决了使用@Schedul ...
- Spring Boot 2.x基础教程:使用Elastic Job实现定时任务
上一篇,我们介绍了如何使用Spring Boot自带的@Scheduled注解实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-1/ ...
- Spring Boot 2.x基础教程:使用Redis的发布订阅功能
通过前面一篇集中式缓存的使用教程,我们已经了解了Redis的核心功能:作为K.V存储的高性能缓存. 接下来我们会分几篇来继续讲讲Redis的一些其他强大用法!如果你对此感兴趣,一定要关注收藏我哦! 发 ...
- Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应
在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...
- Spring Boot 2.x基础教程:使用JTA实现分布式事务
在一个Spring Boot项目中,连接多个数据源还是比较常见的.之前也介绍了如何在几种常用框架的场景下配置多数据源,具体可见: Spring Boot 2.x基础教程:JdbcTemplate的多数 ...
- Spring Boot 2.x基础教程:多文件的上传
昨天,我们介绍了如何在Spring Boot中实现文件的上传(博客地址:https://blog.didispace.com/spring-boot-learning-21-4-3/).有读者问:那么 ...
- Spring Boot 2.x基础教程:使用集中式缓存Redis
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 之前我们介绍了两种进程内缓存的用法,包括Spring B ...
- Spring Boot 2.x基础教程:使用EhCache缓存集群
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 上一篇我们介绍了在Spring Boot中整合EhCac ...
- Spring Boot 2.x基础教程:MyBatis的多数据源配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前两天,我们已经介绍了关于JdbcTemplate的多数 ...
- Spring Boot 2.x基础教程:JdbcTemplate的多数据源配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 在本系列之前的教程中,我们已经介绍了如何使用目前最常用的 ...
最新文章
- boost::strong_components用法的测试程序
- [leetcode Summary] BFS
- OpenStack精华问答 | 如何处理常见故障?
- mongodb 创建数据库权限账号,增删改查(基本操作)
- Leetcode每日一题:143.reorder-list(重排列表)
- mysql 执行计划不对_mysql tokudb执行计划走的不准确案例
- 目的路径太长如哈删除_win7系统删除文件夹提示“无法访问此文件夹 路径太长”如何解决...
- 图表控件ScottPlot
- 我用AI大模型帮我写公众号赚钱!
- Python之编写登录接口
- 虚拟机Hyper-V的安装以及使用教程
- Android 系统自动获取来电/短信/提示铃声
- 潜在解决方法-系统映像还原失败,找不到可用于恢复系统盘的磁盘
- 按文件夹名匹配并复制文件夹及子文件
- [非技术]-电话面试感想
- python采集链家二手房信息
- thinkphp的数据库方法column
- 德国精品软件 看图软件介绍 Ashampoo® Photo Commander 12
- SpingSecurity配置
- 小学四年级家长计算机,小学四年级家长寄语
热门文章
- 扩增子分析神器USEARCH简介
- 机器学习中的没有免费的午餐定律是什么?“没有免费的午餐”对你意味着什么?没有免费午餐定律定律能给数据科学家提供什么启示?
- 误差分析是什么?如何进行误差分析?分析为了获得什么知识?
- 决策树ID3、决策树C4.5、决策树CART、CART树的生成、树的剪枝、从ID3到CART、从决策树生成规则、决策树优缺点
- SummarizedExperiment类使用
- pcb 理论阻值、 过孔_射频电路PCB设计的困境和改善措施
- Windows10下安装unbuntu双系统 以及花屏解决办法
- 六、线程的实现方式---多线程模型
- linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数
- 报错解决:Failed to talk to init daemon.