史上功能最全的Java权限认证框架!
大家好,我是 Java 陈序员
。权限认证是我们日常开发绕不过的话题,这是因为我们的应用程序需要防护,防止被窜入和攻击。
在 Java
后端开发中,实现权限认证有很多种方案可以选择,一个拦截器、过滤器也许就可以轻松搞定。当然,现在也有很多成熟的框架,供我们选择。轻量的 Shiro
,Spring
家族的 SpringSecurity
,是目前比较流行的框架。当然,二者孰优孰劣,仁者见仁智者见智!
随着业务的复杂和系统功能架构的演进,权限认证不再仅仅是登录授权的常规操作。而是要考虑到多种多样的场景,单点登录、前后端分离、记住密码、踢人下线等等。
今天要介绍的项目是史上功能最全的 Java
权限认证框架 —— Sa-Token
.涵盖各种权限认证场景,有完善的文档和 SDK
,可以轻松的集成到我们项目中使用!当然,也是我们可以学习的优秀开源项目!
项目介绍
Sa-Token
是一个轻量级 Java
权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0
、分布式 Session
会话、微服务网关鉴权等一系列权限相关问题。
目前已集成——登录认证、权限认证、分布式 Session
会话、微服务网关鉴权、单点登录、OAuth2.0
、踢人下线、Redis
集成、前后台分离、记住我模式、模拟他人账号、临时身份切换、账号封禁、多账号认证体系、注解式鉴权、路由拦截式鉴权、花式 token
生成、自动续签、同端互斥登录、会话治理、密码加密、jwt
集成、Spring
集成、WebFlux
集成。
项目地址:
https://github.com/dromara/Sa-Token
在线文档:
https://sa-token.cc/
功能介绍
Sa-Token
目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0
、微服务鉴权。
登录认证:多端登录、单端登录、同端互斥登录、七天免登录等多种登录策略只需改个配置即可完成
权限认证:权限认证、角色认证、会话二级认证、注解鉴权、路由鉴权等多种姿势灵活鉴权
单点登录:同域、跨域、共享
Redis
、跨Redis
、前后端一体、前后端分离等提供各种架构下的SSO
接入方案OAuth2.0
:轻松搭建OAuth2.0
认证中心,支持四种授权模式,支持openid
授权机制,支持二次扩展开发微服务鉴权:分布式
Session
会话、网关统一鉴权、RPC
调用鉴权等,提供开箱即用的微服务认证方案
SpringBoot 环境集成
项目依赖
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.37.0</version>
</dependency>
配置文件
sa-token:
# token 名称(同时也是 cookie 名称)
token-name: satoken
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
timeout: 2592000
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
active-timeout: -1
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
is-share: true
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
token-style: uuid
# 是否输出操作日志
is-log: true
代码实现
登录功能实现
public String doLogin(String username, String password){
// 此处仅作模拟示例,真实项目需要从数据库中查询数据进行比对
if("admin".equals(username) && "admin".equals(password)) {
StpUtil.login(10001);
return "登录成功";
}
return "登录失败";
}
判断是否登录
public String isLogin() {
return "当前会话是否登录:" + StpUtil.isLogin();
}
最后
推荐的开源项目已经收录到 GitHub
项目,欢迎 Star
:
https://github.com/chenyl8848/great-open-source-project
或者访问网站,进行在线浏览:
https://chencoding.top:8090/#/
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!
史上功能最全的Java权限认证框架!的更多相关文章
- Android史上功能最全的日历控件
※效果 ※用法 package com.fancyy.calendarweight; import java.util.ArrayList; import java.util.List; import ...
- shiro太复杂?快来试试这个轻量级权限认证框架!
前言 在java的世界里,有很多优秀的权限认证框架,如Apache Shiro.Spring Security 等等.这些框架背景强大,历史悠久,其生态也比较齐全. 但同时这些框架也并非十分完美,在前 ...
- springboot集成轻量级权限认证框架sa-token
sa-token是什么? sa-token是一个JavaWeb轻量级权限认证框架,主要解决项目中登录认证.权限认证.Session会话等一系列由此衍生的权限相关业务.相比于其他安全性框架较容易上手. ...
- 登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架
登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架
- 史上最详细JVM,Java内存区域讲解
本人免费整理了Java高级资料,一共30G,需要自己领取:传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 运行时数据区域 JVM载执行Jav ...
- RocketMQ4.3.x 史上配置最全详解,没有之一
最近整理了RocketMQ的配置参数一部分参考rocketmq技术内幕,一部分自己看源码猜测,有表述不清楚或不正确请广大网友指正 这里应该是最全的配置解析了,搞了2天.以后查询就好办了,仅此贡献给广大 ...
- 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载
原文地址:http://funine.iteye.com/blog/2220359 (本文所有素材将在文章最后附上) 准备工具exe4j, converticon.com(用于制做.ico格式的图片) ...
- 史上最难的一道Java面试题 (分析篇)
博客园 匠心零度 转载请注明原创出处,谢谢! 无意中了解到如下题目,觉得蛮好. 题目如下: public class TestSync2 implements Runnable { int b = 1 ...
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
本文章源码地址: https://github.com/zhonggaorong/QQLoginDemo 项目搭建参考: (包含QQ登录源码下载 . QQ sdk集成) http://blog.cs ...
- mongodb4版本,windows下的安装与配置(史上步骤最全最详细+图解)
安装的是4.2.1版本,安装途中出现过很多错误,找遍各种博客基本没能解决 1.mongodb安装的官方地址: https://www.mongodb.com/download-center/commu ...
随机推荐
- 感悟:FPGA的并行处理与PC的多线程处理
前言 FPGA的并行设计是其高速处理的核心之一, 通过并行地处理大量的数据实现预期的功能; PC的多线程设计则是处理大量的内容而衍生出的一种处理方式, 其本质是利用CPU的高速处理能力, 将单个线程以 ...
- KingbaseES checkpoint_timeout参数对wal日志量的影响
前言 在KingbaseESV8R6数据库中,必须先将更改写入WAL日志(老版本称为 xlog),然后才能将这些更改从内存shared_buffer 写入到磁盘. 前两天有个同事遇到一个问题,wal日 ...
- KingbaseES V8R6集群运维案例---数据块故障自动修复(auto_bmr)
案例说明: 在Oracle11.2版本之后,DataGuard 若搭建实时应用日志的物理备库,那么在主库数据文件少 量坏块的情况下,可以利用ABCR技术快速修复坏块. Starting in Orac ...
- 如何拿到接口返回的消耗token
SemanticKernel 以下引用自官方案例 Text模型 使用Kernel FunctionResult functionResult = await kernel.InvokePromptAs ...
- Linux 使用 crontab 定时拆分日志、清理过期文件
@ 目录 前言 简介 一.准备工作 1.1 创建写入脚本 1.2 设置执行权限 1.3 添加定时任务 1.4 配置生效 二.Tomcat日志 按每天分割 2.1 创建一个 sh文件 2.2 设置执行权 ...
- Linux 配置Git
前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 一.用git --version命令检查是否已经安装 二.下载git源码并解压 wget https://github.com/git/ ...
- Linux系统奇安信浏览器报错跨域:the resource is in more-private address space 'local'
报错: Access to XMLHttpRequest at "123" from origin "456" has been blocked by CORS ...
- Python格式化字符串:%、format、f-string
目前Python格式化字符串的方式有三种: 1. % 2.format 3.f-string % 格式化常用方法: # % 格式化字符串 s1 = 'name is %s' % ('zhangsan' ...
- Python从 requirements.txt 安装库
pip install -r requirements.txt
- 【直播预告】今晚7点,来HarmonyOS极客松直播间与技术专家聊聊新技术!