专栏名称: IT大咖说
大咖干货,不再错过。 让不在大会现场的程序猿、攻城狮也能体验现场的精彩瞬间。
目录
相关文章推荐
小新说车  ·  190块买1公里续航,他们说这台“帕梅”超值! ·  4 小时前  
汽车金融大全APP  ·  万里行对接会,新车、二手车、车抵贷、以租代购 ... ·  2 天前  
海峡都市报闽南新闻  ·  注意!泉州这6个路段即将抓拍! ·  2 天前  
汽车最前线  ·  汽车抽奖耍你没商量 ·  2 天前  
51好读  ›  专栏  ›  IT大咖说

27.9K Star 一个轻量级 Java 权限认证框架

IT大咖说  · 公众号  ·  · 2024-05-22 20:00

正文

今天为大家介绍一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。接下来小编为您详细介绍这款高星项目。

功能模块:

目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。




功能结构图:

功能说明:

本项目旨在以简单、优雅的方式完成系统的权限认证部分,以登录认证为例,你只需要:

// 会话登录,参数填登录人的账号id 
StpUtil.login(10001);

无需实现任何接口,无需创建任何配置文件,只需要这一句静态代码的调用,便可以完成会话登录认证。

如果一个接口需要登录后才能访问,我们只需调用以下代码:

// 校验当前客户端是否已经登录,如果未登录则抛出 `NotLoginException` 异常
StpUtil.checkLogin();

大多数功能都可以一行代码解决:

踢人下线:

// 将账号id为 10077 的会话踢下线 
StpUtil.kickout(10077);

权限认证:

// 注解鉴权:只有具备 `user:add` 权限的会话才可以进入方法
@SaCheckPermission("user:add")
public String insert(SysUser user) {
// ...
return "用户增加";
}

路由拦截鉴权:

// 根据路由划分模块,不同模块不同鉴权 
registry.addInterceptor(new SaInterceptor(handler -> {
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// 更多模块...
})).addPathPatterns("/**");

单点登录:

由简入难划分为三种模式,解决不同架构下的 SSO 接入问题:

系统架构

采用模式

简介

文档链接

前端同域 + 后端同 Redis

模式一

共享Cookie同步会话

文档、示例

前端不同域 + 后端同 Redis

模式二

URL重定向传播会话

文档、示例

前端不同域 + 后端 不同Redis

模式三

Http请求获取会话

文档、示例







请到「今天看啥」查看全文