项目简介

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实现定时任务相关推荐

  1. Spring Boot 2.x基础教程:使用Elastic Job的分片配置

    上一篇,我们介绍了如何使用Elastic Job实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-2/).解决了使用@Schedul ...

  2. Spring Boot 2.x基础教程:使用Elastic Job实现定时任务

    上一篇,我们介绍了如何使用Spring Boot自带的@Scheduled注解实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-1/ ...

  3. Spring Boot 2.x基础教程:使用Redis的发布订阅功能

    通过前面一篇集中式缓存的使用教程,我们已经了解了Redis的核心功能:作为K.V存储的高性能缓存. 接下来我们会分几篇来继续讲讲Redis的一些其他强大用法!如果你对此感兴趣,一定要关注收藏我哦! 发 ...

  4. Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  5. Spring Boot 2.x基础教程:使用JTA实现分布式事务

    在一个Spring Boot项目中,连接多个数据源还是比较常见的.之前也介绍了如何在几种常用框架的场景下配置多数据源,具体可见: Spring Boot 2.x基础教程:JdbcTemplate的多数 ...

  6. Spring Boot 2.x基础教程:多文件的上传

    昨天,我们介绍了如何在Spring Boot中实现文件的上传(博客地址:https://blog.didispace.com/spring-boot-learning-21-4-3/).有读者问:那么 ...

  7. Spring Boot 2.x基础教程:使用集中式缓存Redis

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 之前我们介绍了两种进程内缓存的用法,包括Spring B ...

  8. Spring Boot 2.x基础教程:使用EhCache缓存集群

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 上一篇我们介绍了在Spring Boot中整合EhCac ...

  9. Spring Boot 2.x基础教程:MyBatis的多数据源配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前两天,我们已经介绍了关于JdbcTemplate的多数 ...

  10. Spring Boot 2.x基础教程:JdbcTemplate的多数据源配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 在本系列之前的教程中,我们已经介绍了如何使用目前最常用的 ...

最新文章

  1. boost::strong_components用法的测试程序
  2. [leetcode Summary] BFS
  3. OpenStack精华问答 | 如何处理常见故障?
  4. mongodb 创建数据库权限账号,增删改查(基本操作)
  5. Leetcode每日一题:143.reorder-list(重排列表)
  6. mysql 执行计划不对_mysql tokudb执行计划走的不准确案例
  7. 目的路径太长如哈删除_win7系统删除文件夹提示“无法访问此文件夹 路径太长”如何解决...
  8. 图表控件ScottPlot
  9. 我用AI大模型帮我写公众号赚钱!
  10. Python之编写登录接口
  11. 虚拟机Hyper-V的安装以及使用教程
  12. Android 系统自动获取来电/短信/提示铃声
  13. 潜在解决方法-系统映像还原失败,找不到可用于恢复系统盘的磁盘
  14. 按文件夹名匹配并复制文件夹及子文件
  15. [非技术]-电话面试感想
  16. python采集链家二手房信息
  17. thinkphp的数据库方法column
  18. 德国精品软件 看图软件介绍 Ashampoo® Photo Commander 12
  19. SpingSecurity配置
  20. 小学四年级家长计算机,小学四年级家长寄语

热门文章

  1. 扩增子分析神器USEARCH简介
  2. 机器学习中的没有免费的午餐定律是什么?“没有免费的午餐”对你意味着什么?没有免费午餐定律定律能给数据科学家提供什么启示?
  3. 误差分析是什么?如何进行误差分析?分析为了获得什么知识?
  4. 决策树ID3、决策树C4.5、决策树CART、CART树的生成、树的剪枝、从ID3到CART、从决策树生成规则、决策树优缺点
  5. SummarizedExperiment类使用
  6. pcb 理论阻值、 过孔_射频电路PCB设计的困境和改善措施
  7. Windows10下安装unbuntu双系统 以及花屏解决办法
  8. 六、线程的实现方式---多线程模型
  9. linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数
  10. 报错解决:Failed to talk to init daemon.