本页目录 Sa-Token介绍 相关链接 介入权限框架 sa-token Maven依赖 Sa-Token介绍 Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录 相关链接 官网:https://sa-token.cc/ Github地址:https://github.com/dromara/sa-token 介入权限框架 sa-token Maven依赖 -- Sa-Token 权限认证,在线文档:https://sa-token.cc --> <dependency> <groupId>cn.dev33</groupId
-- Sa-Token 权限认证,在线文档:https://sa-token.cc --> <dependency> <groupId>cn.dev33</groupId> <artifactId application.yml 中增加如下配置,定制性使用框架: application.yml 风格: server: # 端口 port: 8080 ############## Sa-Token 配置 ############## sa-token: # token 名称(同时也是 cookie 名称) token-name: satoken # token 有效期( , args); System.out.println("启动成功:http://127.0.0.1:8080"); System.out.println("启动成功,Sa-Token 集成完成,你已经可以开始使用 Sa-Token 进行权限认证的开发了。
——高尔基 介绍一个轻量级JWT权限认证框架Sa-Token 官方文档:https://sa-token.dev33.cn/doc/index.html#/ 今天直接试着用了下,感觉还不错,功能比之前的
StpLogic 我们这里用简单模式,更加安全且支持更多功能 // jwt 模式, @Bean public StpLogic getStpLogicJwt() { // Sa-Token
——爱默生 今天把Sa-Token中的用户状态进行持久层扩展 使用了jdk默认序列化方式后报错,清除缓存后又换成了jackson序列化方式 结果还是报错SerializationException java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; /** * Sa-Token
——穆尼尔·纳素夫 1:注册Sa-Token的注解拦截器,打开注解式鉴权功能 图片 @Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法 程序有一定的魔法值是可以的)但是我看着烦 2:全局异常拦截(拦截项目中的所有异常) 图片 配置好拦截器咱们就可以使用@SaCheckLogin注解完成token拦截了 图片 期间也没有遇到什么坑 也不记录了 因为sa-token
后来我把项目的鉴权层换成了 Sa-Token 的注解模式, 上面那坨代码直接变成方法头上一个 @SaCheckRole("admin"),说实话改完那一刻确实爽到了。 今天就把 Sa-Token 注解鉴权这块整理一下,我自己踩过的坑也一并说了。 Sa-Token 的注解鉴权依赖全局拦截器,但它默认是关的。 角色和权限混着校验 这是我觉得 Sa-Token 设计得比较巧的一个点。 实际业务里经常遇到这种需求:普通用户需要 user.add 权限才能操作,但 admin 角色直接放行。 它不仅能忽略注解鉴权,还能忽略 Sa-Token 拦截器里配置的路由鉴权规则。这点要小心,别无意中把安全接口暴露了。 3. 加在类上就是整个 Controller 都跳过鉴权。
——莎士比亚《亨利四世上篇》 1:首先引入sa-token依赖 <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-spring-boot-starter 有什么疑惑和问题可以去官方文档写的非常详细:https://sa-token.dev33.cn/doc/index.html#/ 号称:手把手教你敲代码 狗头加持 2:从application.yml文件中配置sa-token server: # 端口 port: 8081 # Sa-Token配置 sa-token: # token名称 (同时也是cookie名称) token-name ResultCode.INTERNAL_SERVER_ERROR, "账号或密码错误 请您检查好账号密码重新输入")); 图片 获取当前用户IP 图片 4:效果 图片 输入错误五次之后 图片 输入正确账号密码之后返回用户信息以及token 图片 明天在写如何使用sa-token
Sa-Token整合OAuth2 开源地址 https://gitee.com/ZVerify/zverify-blog 为什么要整合OAuth2 有些时候我们自己写的网站注册过于繁琐需要每个用户花费时间去注册 如果可以从数据库中查询数据出来,我们就更新一下登录,如果没有查询出来就进行用户信息初始化进行保存数据库然后更新登录就好啦,这两个可以根据自己的需求和业务去改,我这里用了sa-token,就简单把代码放这了
然而,Sa-Token 作为一个轻量级框架,能在短时间内于中文社区迅速崛起,其核心吸引力绝非单纯的功能堆砌。 Sa-Token 的成功,本质上是一场设计哲学的胜利。 Sa-Token 最具辨识度的设计,无疑是其统一的工具类入口 StpUtil。 让开发者一眼看懂,随时能接管,这就是 Sa-Token 对“透明”的定义。 可替换与插件化 极简不等于封闭。 Sa-Token 的哲学是,默认提供好用的实现,但任何核心部件都可以被替换。 Sa-Token 的设计哲学正是为了解决这一痛点。 它成功地将权限认证重新拉回到了“基础设施”的层面。 用最少的概念解决最多的问题,用最透明的方式把控制权交给开发者,便是 Sa-Token 的设计哲学。
今天分享的是 Spring Boot 整合 Sa-Token 实现登录认证。
使用 Sa-Token 可以大大简化我们的权限认证开发工作,提高开发效率,因此它受到了越来越多的 Java 开发者的喜爱。2. SpringBoot 如何使用 Sa-Token接下来我们将介绍如何在 SpringBoot 中使用 Sa-Token,实现权限认证功能。2.1. 配置文件在添加完依赖之后,我们需要在配置文件中进行相关的配置,主要包括数据库连接信息和 Sa-Token 的相关配置。 编写安全配置类接下来,我们需要编写一个安全配置类,用于配置 Sa-Token 的 Servlet 拦截器和 Filter 拦截器,以保证所有的请求都会被 Sa-Token 拦截并进行身份认证和权限控制。 因此,我们应该积极学习和使用 Sa-Token,将其应用到我们的项目中,以更好地保障系统的安全和稳定运行。
有些小伙伴在工作中可能遇到过这样的场景:新项目启动会上,架构师坚持要用Spring Security,团队里的老将却说Shiro更简单实用,而年轻的同事则力荐Sa-Token这个后起之秀。 4 Sa-Token:国产新星的“后起之秀” 4.1 Sa-Token是什么? Sa-Token是一个轻量级Java权限认证框架,由国内开发者开发。 在Spring Security和Shiro之外,Sa-Token提供了一种新的选择。 4.2 核心特性:简单而强大 Sa-Token的核心设计哲学可以概括为:“简单、强大、灵活”。 ) 理由:需要快速上线验证想法,团队规模小,追求开发效率 实施要点: 利用Sa-Token的零配置特性快速搭建 使用注解方式实现基本权限控制 集成Redis实现分布式会话 利用Sa-Token的踢人功能实现基础管理 Sa-Token是快速开发的利器,API简洁但生态相对年轻,适合追求开发效率的场景。 实际上,没有完美的框架,只有合适的框架。
1、Sa-token的文档还是很清晰的,直接按照文档来就可以了,首先在Springboot项目中添加依赖<! -- Sa-Token 权限认证,在线文档:https://sa-token.cc --><dependency> <groupId>cn.dev33</groupId> <artifactId >sa-token-spring-boot-starter</artifactId> <version>1.34.0</version></dependency>2、然后配置sa-token相关的参数 :sa-token: # token名称 (同时也是cookie名称) token-name: token # token有效期,单位s 默认30天, -1代表永不过期 timeout -- Sa-Token 整合 Redis (使用 jackson 序列化方式) --><dependency> <groupId>cn.dev33</groupId> <artifactId
本文详细介绍了Sa-Token在Java项目中的使用方法,包括Sa-Token的基本概念、与其他权限框架的比较、基本语法和高级用法,并通过实例讲解了如何在项目中集成和使用Sa-Token。 最后,总结了Sa-Token的优缺点及其在实际开发中的应用场景,为开发者提供全面的指导。 一、Sa-Token介绍 1. Sa-Token原理解析 Sa-Token的核心原理是通过Token机制实现用户的身份认证和权限校验。 Sa-Token与其他权限框架比较 Sa-Token与其他常见权限框架在学习成本、集成难度上有显著优势: 特性 Sa-Token Shiro 配置Sa-Token application.yml # Sa-Token配置,可根据需要进行调整 sa-token: # token有效期,单位秒,默认30天 timeout: 2592000
Sa-Token 简介 Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。 sa-token-spring-boot-starter</artifactId> <version>1.34.0</version> </dependency> application.yml 配置 # Sa-Token 配置 sa-token: # token名称 (同时也是cookie名称) token-name: token # token有效期,单位s 默认30天, -1代表永不过期 timeout SaTokenConfigure implements WebMvcConfigurer { /** * @MonthName:addInterceptors * @Description: 注册 Sa-Token **/ @Override public void addInterceptors(InterceptorRegistry registry) { // 注册 Sa-Token
这篇文章,我就结合 Sa-Token 的实现,把这件事彻底拆开。如果你们项目里也在做 Web 登录、前后端分离、APP / 小程序鉴权,这篇会很有用。 在 Sa-Token 里,一个很多人第一次就会看反的点 Sa-Token 这套设计里,登录授权默认就是 [记住我] 模式。 但在工程实现层面,Sa-Token 更像是把“登录后默认保持状态”当成基础能力。你如果要“非记住我”,就显式关闭它。 这其实也提醒我们一件事:业务语义和框架默认值,最好不要靠猜。 所以 Sa-Token 这件事的实现逻辑非常直接: • 勾选 [记住我] 时,调用 StpUtil.login(10001, true),写入的是 持久Cookie。 但 Sa-Token 其实把这两个维度拆开了。
这里分享一个使用Sa-Token的gateway鉴权demo。 需求分析 结构 认证 sa-token模块 我们首先编写sa-token模块进行token生成和权限分配。 在sa-token的session模式下生成token非常方便,只需要调用 StpUtil.login(Object id); 就可以为账号生成 Token 凭证与 Session 会话了。 当然sa-token也支持jwt来生成无状态的token,这样就不需要在服务中引入redis了。 我们仅仅使用了sa-token的一个StpUtil.login(Object id)方法,其他事情sa-token都帮我们完成了,更无需复杂的配置和多到爆炸的Bean。 在sa-token中想要实现这个功能,只需要实现StpInterface接口即可。
最近我发现了一个宝藏级国产开源项目——Sa-Token,几乎是一秒上手,瞬间就爱上了。今天,我就带大家来体验一下,这个框架到底有多"香"! Sa-Token 是什么? 简单来说,Sa-Token 是一个轻量级的 Java 权限认证框架,它的核心理念就是:让鉴权变得简单、优雅! 在 Sa-Token 中,许多核心功能都通过这样优雅的一行代码来完成。 功能远超想象 当然,Sa-Token 的能力远不止于此,它几乎涵盖了权限认证领域的方方面面,堪称一把"瑞士军刀"。 可以说,无论简单的单体应用,还是复杂的分布式系统,Sa-Token 都提供了成熟的解决方案。 为什么我推荐 Sa-Token?我推荐一个框架,绝不仅仅因为它"好用"。 1.
前言 博主在使用 Sa-Token 框架的过程中,越用越感叹框架设计的精妙。于是,最近在学习如何给 Sa-Token 贡献自定义框架。为 Sa-Token 的开源尽一份微不足道的力量。 我将分三篇文章从 0 到 1 讲解如何为 Sa-Token 自定义一个插件,这一集将是前沿知识 —— SPI 那为什么要学 SPI 呢? [Sa-Token 官方描述](https://gitee.com/sa-tokens/sa-token-three-plugin/blob/master/README_PR_STEP.md) 由此可见 ,Sa-Token 的第三方插件是基于 SPI 机制实现的装配,我们要知其然且知其所以然,不仅要学会开发插件还要学会大佬们的设计思路 废话不多说,现在正式开始!