环球要闻:9 个 yyds 的 Java 项目,可应对各种私活!
首先我要介绍的是Sa-Token,可能是史上功能最全的轻量级Java权限认证框架。简单的使用方式,丰富的特性...
2023-02-22大家好,我是蜗牛。
首先我要介绍的是 Sa-Token,可能是史上功能最全的轻量级 Java 权限认证框架。简单的使用方式,丰富的特性,强大的功能,你有什么理由拒绝?
官方网站:http://sa-token.dev33.cn/
(资料图片仅供参考)
Gitee托管仓库:https://gitee.com/dromara/sa-token
Github托管仓库:https://github.com/dromara/Sa-Token
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权等一系列权限相关问题。Sa-Token 的 API 设计非常简单,有多简单呢?以登录认证为例,你只需要:
// 在登录时写入当前会话的账号idStpUtil.login(10001);// 然后在需要校验登录处调用以下方法:// 如果当前会话未登录,这句代码会抛出 `NotLoginException` 异常StpUtil.checkLogin();
复制
至此,我们已经借助 Sa-Token 完成登录认证!此时的你小脑袋可能飘满了问号,就这么简单?自定义 Realm 呢?全局过滤器呢?我不用写各种配置文件吗?
没错,在 Sa-Token 中,登录认证就是如此简单,不需要任何的复杂前置工作,只需这一行简单的API调用,就可以完成会话登录认证!
当你受够 Shiro、SpringSecurity 等框架的三拜九叩之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!
权限认证示例(只有具备 user:add 权限的会话才可以进入请求
@SaCheckPermission("user:add")@RequestMapping("/user/insert")public String insert(SysUser user) {// ...return "用户增加";}
复制
将某个账号踢下线(待到对方再次访问系统时会抛出 NotLoginException 异常)
// 使账号id为 10001 的会话强制注销登录StpUtil.logoutByLoginId(10001);
复制
在 Sa-Token 中,绝大多数功能都可以 一行代码 完成:
StpUtil.login(10001); // 标记当前会话登录的账号idStpUtil.getLoginId(); // 获取当前会话登录的账号idStpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或falseStpUtil.logout(); // 当前会话注销登录StpUtil.logoutByLoginId(10001); // 让账号为10001的会话注销登录(踢人下线)StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或falseStpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或falseStpUtil.getSession(); // 获取当前账号id的SessionStpUtil.getSessionByLoginId(10001); // 获取账号id为10001的SessionStpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值StpUtil.login(10001, "PC"); // 指定设备标识登录,常用于“同端互斥登录”StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响)StpUtil.openSafe(120); // 在当前会话开启二级认证,有效期为120秒StpUtil.checkSafe(); // 校验当前会话是否处于二级认证有效期内,校验失败会抛出异常StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
复制
即使不运行测试,相信您也能意会到绝大多数 API 的用法。想要了解更多请参考:https://gitee.com/dromara/sa-token。
2. Forest
一款极大程度解放你的 HTTP 接入工作的强大 HTTP 客户端框架。HTTP 协议很复杂吗?那是因为你还没有使用过 Forest,虽然业内有很多其他优秀的HTTP 客户端,但是你错过了 Forest,将会错过一大片优雅美丽的森林。
官方网站:http://forest.dtflyx.com
Gitee托管仓库:https://gitee.com/dromara/forest
Github托管仓库:https://github.com/dromara/forest
Forest 是一个开源的 Java HTTP 客户端框架,用来访问第三方服务 RESTful 接口。
它能够将 HTTP 的请求参数绑定到 Java 接口上,之后调用 Java 接口就等于在发送 HTTP 请求。一切面向于接口。
很多公司需要在 Java 后台调用许多第三方 HTTP 接口,比如微信支付、友盟等等第三方平台。
公司内部还有很多服务是用世界最好语言写的,接口自然也只能通过 HTTP 接口来调用。于是日积月累下来,在 Java 代码中就有许许多多各式各样的 HTTP 调用接口,而且调用方式也不统一,有 HttpClient 写的、有 OkHttp 写的、有自己包装的,光公司内部不同人包装的 HTTP 工具类就有两三种。
而且 url 基本写死在代码中,很难维护,不同接口又有不同的参数传输方式,有 GET 、有 POST,有 JSON 传输的、有 XML 传输的。当有一个接口需要修改,完了,光找到代码在什么地方就要花半天时间。
而 Forest 能帮助我很好地将 HTTP 代码和业务代码解耦开来,请求调用者不必关心 HTTP 相关的细节。
自动拼接 HTTP 的各种参数
包括 URL、Header、Body 等等参数都能依靠 Java 注解来声明。这里就举一个高德地图的栗子,来看看 Forest 是如何优雅的声明 HTTP 请求接口的:
/** * 高德地图服务客户端接口 */@BaseRequest(baseURL = "http://ditu.amap.com")public interface Amap {/** * 根据经纬度获取详细地址 * @param longitude 经度 * @param latitude 纬度 * @return 详细地址信息 */@Get("/service/regeo") Map getLocation(@Query("longitude") String longitude, @Query("latitude") String latitude);}......Amap amap = Forest.client(Amap.class);// 发送请求查询经纬度Map locationInfo = amap.getLocation("32.1242832", "56.3290434");
复制
自动 JSON 和 XML 转换
其实,我们处理 HTTP 的工作时,除了浪费在组装各种请求参数外,大部分时间都花了在序列化和反序列化各种格式的数据上,如 JSON 和 XML。
以前用 HttpClient,这些重复的机械性工作都要自己来搞,很是麻烦。
用 Forest 就方便多了,比如要 POST 一个 JSON 对象,直接挂个 @JSONBody 就好了,就是这么清爽。
// 直接将 MyUserInfo 转换成 JSON// 将服务端响应返回的 JSON 数据转换成 Result 类对象@Post("http://localhost:8080/user")Result createUser(@JSONBody MyUserInfo user);
复制
和 Retrofit 以及 Feign 的比较
之前也用过这两款开源框架,都很强大,但各有优缺点。
Retrofit 的主要的问题时和 OkHttp 绑的太死,有些功能被 OkHttp 限制住了,比如我想处理 Get 请求传输 Body 数据这种非标准的 HTTP 请求就很难办到,而 Forest 可以随意切换 OkHttp 和 HttpClient 作为后端,需要用哪个时用哪个。
Retrofit 注解的丰富性也不如 Forest,比如要实现 HTTP 网络代理就要自己去写代码,而 Forest 提供了 @HTTPProxy 注解,设置一下就完事了。
如果要扩展自定义注解都是基于 OkHttp 的拦截器,不是特别方便,而 Forest 拦截器要比 OkHttp 的方便很多,提供 onInvoke, beforeExecute, onSccuess, onError 等回调方法,等于把一个请求的生老病死都涵盖了。
而 Feign 的问题则是和 Spring 绑的太紧,很多功能需要依赖 Spring 去做,太加了 Spring 相关包又太重了。
Forest 的核心包基本涵盖了所有 HTTP 所需功能和注解,不依赖 Spring,要轻量许多,但又不失方便性。
想要了解更多请参考:https://gitee.com/dromara/forest。
一款超轻量,快速,稳定,可编排的组件式流程引擎/规则引擎。
解耦复杂系统的神器!如果你正在为设计一个复杂系统感到头痛,那么 LiteFlow 是你不二的选择,超低的学习成本,强大的编排功能,让你的系统变得更优雅!
官方网站:https://yomahub.com/liteflow
Gitee托管仓库:https://gitee.com/dromara/liteFlow
Github托管仓库:https://github.com/dromara/liteflow
Liteflow 为解耦复杂逻辑而生,如果你要对复杂业务逻辑进行新写或者重构,用 liteflow 最合适不过。它是一个轻量,快速的组件式流程引擎框架,组件编排,帮助解耦业务代码,让每一个业务片段都是一个组件。
使用 Liteflow,你需要去把复杂的业务逻辑按代码片段拆分成一个个小组件,并定义一个规则流程配置。这样,所有的组件,就能按照你的规则配置去进行复杂的流转。同时 Liteflow 支持规则文件的热加载,即时完成修改生效。并提供多种持久化规则的方式的扩展。
使用 LiteFLow,三大核心概念是组件,规则和上下文。
你需要这么像这样去定义你的组件:
//这里普通组件@LiteflowComponent(id = "a", name = "组件A描述")public class ACmp extends NodeComponent {@Overridepublic void process() {//do your business }}//这是条件组件@LiteflowComponent(id = "b", name = "组件B描述")public class BCondCmp extends NodeCondComponent {@Overridepublic String processCond() {//do your businessreturn "e"; }}
复制
然后去定义你的规则,LiteFlow支持 XML,yml,JSON 三种格式。这里以 XML 形式为例:
复制
复制
这样你的系统就会按照规则文件定义的方式,去执行你的业务组件。是不是很简单?
那规则文件定义在哪呢,LiteFlow 并不限定你的规则文件来源,可以是本地文件,可以是注册中心,可以是任何数据库。LiteFlow 提供了非常自由的接口供你扩展,你想存储在哪里都行。改变规则文件,即可实时刷新你的规则流程!如果你想做一个灵活度高,伸缩性强的系统,LiteFlow 是不是非常适合呢?
LiteFlow 为每一个请求都去开辟申请了一个 Slot,你可以理解为上下文,所有的组件共享这个 Slot。你可以在任意组件里通过对 Slot 的访问来获得任意数据,也可以存放任意数据。你也可以扩展 Slot,自定义这个 Slot 的属性。
@LiteflowComponent(id = "a", name = "组件A描述")public class ACmp extends NodeComponent {@Overridepublic void process() { Slot slot = this.getSlot();//通过对slot的getData,setData,或者存取你自己扩展的slot属性 }}
复制
正因为有 Slot 的存在,才抹平了组件与组件之间的差异性,使得每一个业务组件之间无强依赖。这样的设计,就可以让你的系统高度自由化,组件复用,组件调换顺序得以方便的实现!
LiteFlow 还支持 2 种脚本语言的接入,目前支持 Groovy 和 QLExpress 两种脚本语言。你可以在 xml/yml/json 定义脚本,以下以 XML 为例:
100){ return "a"; }else{ return "b"; } ]]>
复制
那么在什么地方定义是哪种语言的脚本呢?LiteFlow 的脚本功能是一个 SPI 机制的实现。你依赖了哪个脚本包,就以哪种脚本的方式执行。
有了脚本语言的支持,连业务代码是不是都可以热部署了?香不香?
LiteFlow 的功能远不止这些,想了解更多,请到官网文档去查看了解。相信LiteFlow会让你感到优雅和惊艳。
想要了解更多请参考:https://yomahub.com/liteflow。
一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。中小公司团队 DevOps 的福音!轻量且强大,你不试试?
官方网站:https://jpom.io/
Gitee托管仓库:https://gitee.com/dromara/Jpom
Github托管仓库:https://github.com/dromara/Jpom
Jpom 是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
在中小公司或者团队中传统项目部署、运维流程通用的方法是登录服务器上传新的项目包,执行相应命令管理,如果管理多个项目则重复操作上述步骤。
市面上有很许多 DevOps 软件但是这些软件基本都会是难上手,重依赖。Jpom 则是针对中小公司或者团队设计的一款低侵入,轻依赖的一款轻量级的 DevOps 软件。
项目主要功能及特点:
创建、修改、删除项目、Jar 包管理;实时查看控制台日志、备份日志、删除日志、导出日志;在线构建项目发布项目一键搞定;多节点管理、多节点自动分发;在线 SSH 终端,并且有终端日志和禁用命令;实时监控项目状态异常自动报警;CPU、内存监控、导出堆栈信息、查看项目进程端口、服务器状态监控;多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志;系统路径白名单模式,杜绝用户误操作系统文件;在线管理 Nginx 配置文件、SSL 证书文件。一键安装(Linux)(推荐)
插件端
如果服务端也需要被管理,在服务端上也需要安装插件端。安装的路径位于执行命令目录(数据、日志存放目录默认位于安装路径,如需要修改参考配置文件:extConfig.yml )。
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent
复制
备用地址yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Agent
复制
支持自动安装 JDK 环境yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Agent jdk
复制
启动成功后,插件端的端口为 2123。
服务端
安装的路径位于执行命令目录(数据、日志存放目录默认位于安装路径,如需要修改参考配置文件:extConfig.yml )。
如果需要修改数据、日志存储路径请参照 extConfig.yml 文件中 jpom.path 配置属性。
yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server
复制
备用地址yum install -y wget && wget -O install.sh https://cdn.jsdelivr.net/gh/dromara/Jpom/docs/install.sh && bash install.sh Server
复制
支持自动安装 JDK 环境。yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk
复制
支持自动安装 JDK 和 Maven 环境。yum install -y wget && wget -O install.sh https://dromara.gitee.io/jpom/docs/install.sh && bash install.sh Server jdk+mvn
复制
启动成功后,服务端的端口为 2122 访问管理页面。例如 http://localhost:2122/
特别提醒:一键安装的时候注意执行命令不可在同一目录下,即 Server 端和 Agent 端不可安装在同一目录下。
如无法访问,检查下是否开启了防火墙 systemctl status firewalld,如状态显示为绿色 Active: active (running) 可临时关闭防火墙 systemctl stop firewalld,然后重启防火墙。firewall-cmd --reload(建议仅测试环境下使用,生产环境下慎用) 如关闭防火墙后仍无法访问,并且使用的是云服务器,还需要到云服务器管理后台中关闭防火墙。
想要了解更多请参考:https://gitee.com/dromara/Jpom。
首先我要介绍的是Cubic,一站式问题定位平台!线程栈监控、线程池监控、动态arthas命令集、依赖分析等等等,强不强大,香不香?
官方网站:https://cubic.jiagoujishu.com/
Gitee托管仓库:https://gitee.com/dromara/cubic
Github托管仓库:https://github.com/dromara/cubic
5.1 介绍
一站式问题定位平台,还在为线上问题而烦恼吗?
线程栈监控、线程池监控、动态 arthas 命令集、依赖分析等等等,致力于应用级监控,帮助开发人员快速定位问题。
5.2 有什么特性
兼容性:整体监控不管你是 IDC、ECS、Docker 部署,都可完美兼容;易用:无需任何配置,开箱即用,基于 agent 无侵入接入,升级应用端无感知;强大:支持对应用的基础监控、堆栈监控、线程池监控等等;高扩展:提供良好的扩展接口,给你自主选择。使用后能带来怎样工作效率上的提升。
5.3 功能展示
实例中心(展示当前实例信息)
基础信息(点击实例->展示当前实例的基础信息)
依赖监控(点击实例-〉展示当前实例的依赖包信息)
Arthas 命令操作
线程池监控
实时线程栈
历史线程栈
想要了解更多请参考:https://gitee.com/dromara/cubic。
丢掉 Shiro 吧,也别再用 Spring Security了。简单易用多语言多框架支持,基于 RESTAPI 的强大国产鉴权框架,效率神器!
官方网站:https://usthe.com/sureness
Gitee托管仓库:https://gitee.com/dromara/sureness
Github托管仓库:https://github.com/dromara/sureness
6.1 介绍
在主流的前后端分离架构中,如何通过有效快速的认证鉴权来保护后端提供的 REST API 变得尤为重要。
对现存框架,不原生支持 RESTful 的 Apache Shiro,还是深度绑定 Spring 的 Spring Security,或多或少都不是我们的理想选型。
于是乎 Sureness 诞生了,我们希望能解决这些问题。提供一个面向 REST API、无框架依赖、可以动态修改权限、多认证策略、更快速度、易用易扩展的认证鉴权框架。
6.2 特性
Sureness 是我们在深度使用 Apache Shiro 之后,吸取其优点全新设计开发的一个认证鉴权框架。
面向 REST API 的认证鉴权,基于 RBAC(用户-角色-资源)主要关注于对 API 的安全保护。无特定 Web 框架依赖,开箱即用(已有 SpringBoot、Quarkus、Javalin、Ktor、Micronaut、Jfinal、Solon 等集成样例);支持动态修改权限配置(动态修改配置每个 API 的访问权限) 支持 Websocket 、主流 HTTP 容器 Servlet、JAX-RS、Spring Reactive;支持多种认证策略 JWT、Basic Auth、Digest Auth ... 可扩展自定义认证方式;基于改进的字典匹配树拥有的高性能;良好的扩展接口、样例和文档,帮助急速理解、扩展与使用 Sureness 的低配置;易扩展,不耦合其他框架,希望能对系统多场景快速安全的保护。6.3 对比
benchmark
基准测试显示 Sureness 对比无权限框架应用损耗 0.026ms 性能,Shiro 损耗0.088ms、Spring Security 损耗 0.116ms。
性能差距会随着api匹配链的增加而进一步拉大。
原生支持样例:
[x] Sureness 集成 Spring Boot 样例(配置文件方案)sample-bootstrap[x] Sureness 集成 Spring Boot 样例(数据库方案)sample-tom[x] Sureness 集成 Quarkus 样例 sample-quarkus[x] Sureness 集成 Javalin 样例 sample-javalin[x] Sureness 集成 Ktor 样例 sample-ktor[x] Sureness 集成 Spring Webflux 样例 sample-spring-webflux[x] Sureness 集成 Micronau t样例 sample-micronaut[x] Sureness 集成 MicroProfile 样例 sample-microProfile[x] Sureness 集成 Jfinal 样例 sample-jfinal[x] Sureness 集成 Solon 样例 sample-solon[x] Sureness 集成 Spring Gateway 样例 sample-spring-gateway[x] Sureness 集成 Zuul 样例 sample-zuul[x] Sureness 集成 Session 样例 sureness-session[x] Sureness 集成分布式缓存 Session 样例 sureness-redis-session[x] More samples todo想要了解更多请参考:https://gitee.com/dromara/sureness。
十分钟即可接入,一款神器的日志框架。支持众多的框架和主流 RPC,让你的日志马上升级,变得可追溯!
官方网站:http://yomahub.com/tlog
Gitee托管仓库:https://gitee.com/dromara/TLog
Github托管仓库:https://github.com/dromara/TLog
7.1 介绍
随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务。在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。
这时候很多童鞋会开始考虑上 SkyWalking、Pinpoint 等分布式追踪系统来解决。基于 OpenTracing 规范,而且通常都是无侵入性的,并且有相对友好的管理界面来进行链路 Span 的查询。
但是搭建分布式追踪系统,熟悉以及推广到全公司的系统需要一定的时间周期。而且当中涉及到链路 span节点的存储成本问题,全量采集还是部分采集?
如果全量采集,就以 SkyWalking 的存储来举例,ES 集群搭建至少需要 5 个节点。这就需要增加服务器成本。况且如果微服务节点多的话,一天下来产生几十 G 上百 G 的数据其实非常正常。如果想保存时间长点的话,也需要增加服务器磁盘的成本。
当然分布式追踪系统是一个最终的解决方案,如果您的公司已经上了分布式追踪系统,那 TLog 并不适用。
TLog 提供了一种最简单的方式来解决日志追踪问题。它不收集日志,也不需要另外的存储空间,它只是自动的对你的日志进行打标签。自动生成 TraceId 贯穿你微服务的一整条链路。并且提供上下游节点信息。适合中小型企业以及想快速解决日志追踪问题的公司项目使用。
为此 TLog 适配了三大日志框架,支持自动检测适配。支持 Dubbo、Dubbox、Spring Cloud 三大RPC框架。更重要的是,你的项目接入 TLog,可能连十分钟就不需要 :)
7.2 项目特性
目前 TLog 的支持的特性如下:
通过对日志打标签完成轻量级微服务日志追踪;提供三种接入方式:javaagent 完全无侵入接入,字节码一行代码接入,基于配置文件的接入;对业务代码无侵入式设计。使用简单,10 分钟即可接入;支持常见的 log4j、log4j2、logback 三大日志框架,并提供自动检测,完成适配;支持 Dubbo、Dubbox、Spring Cloud 三大 RPC 框架;支持 Spring Cloud Gateway 和 Soul 网关;适配 HttpClient 和 Okhttp 的 HTTP 调用标签传递;支持三种任务框架,JDK 的 TimerTask、Quartz、XXL-JOB;支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择;支持异步线程的追踪,包括线程池,多级异步线程等场景;几乎无性能损耗,快速稳定。经过压测,损耗在0.01%。7.3 接入方式
使用后你的每行日志会变成以下格式:
想要了解更多请参考:https://gitee.com/dromara/TLog。
8. ImageCombiner
无需 P 图,用 Java 也能合成很好看的图,简单的使用方式,服务端批量合图利器!
官方网站:http://dromara.gitee.io/image-combiner
Gitee托管仓库:https://gitee.com/dromara/image-combiner
8.1 介绍
ImageCombiner 是一个专门用于 Java 服务端图片合成的工具。没有很复杂的功能,追求简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于合成水印也可以)。特别适合图片营销、产品分享等需要实时生成图片场景。
8.2 特性
素材上支持图片、文本、矩形三种,支持元素的定位、缩放、旋转、圆角、透明度、颜色、字体、字号、删除线、居中绘制、文本自动换行等特性,足够覆盖图片合成的日常需求。项目不依赖任何框架,完全基于 JDK 本身编写,没有各种花里胡哨的东西,性能还是相当不错的。
8.3 效率提升
通过对 Graphics2D 的封装和元素模型的提炼,屏蔽了图像处理细节,把复杂的编码简化为设置各个元素的位置、属性即可。作者日常工作中,一个约含十余个元素的复杂图片合成,开发加调试(主要是对比设计稿还原度)20分钟即可搞定,极大的释放了生产力。
8.4 效果预览
最简单的例子:
public void simpleDemo() throws Exception {//合成器 ImageCombiner combiner = new ImageCombiner("http://xxx.com/image/bg.jpg", OutputFormat.JPG);//加图片元素 combiner.addImageElement("http://xxx.com/image/product.png", 0, 300) .setAlpha(.8 f) //透明度(0.0~1.0) .setRotate(45) //旋转(0~360) .setBlur(20); //高斯模糊(1~100);//加文本元素 combiner.addTextElement("周末大放送", 0, 150, 1400) .setCenter(true) //居中绘制(会忽略x坐标,改为自动计算) .setColor(Color.Red) //颜色//执行图片合并 combiner.combine();//可以获取流(并上传oss等) InputStream is = combiner.getCombinedImageStream();//也可以保存到本地 combiner.save("d://image.jpg");
复制
想要了解更多请参考:https://gitee.com/dromara/image-combiner。
MaxKey 单点登录认证系统是业界领先的企业级 IAM 身份管理和认证框架,产品化程度很高,多家知名公司的选择!
官方网站:https://www.maxkey.top/
Gitee托管仓库:https://gitee.com/dromara/MaxKey
Github托管仓库:https://github.com/dromara/MaxKey
9.1 介绍
MaxKey 单点登录认证系统(Single Sign On System)。谐音马克思的钥匙,寓意是最大钥匙。是业界领先的企业级 IAM 身份管理和认证产品。支持 OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM 等标准协议。提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC 权限管理和资源管理等。
9.2 特性
标准认证协议
登录支持
提供标准的认证接口以便于其他应用集成 SSO,安全的移动接入,安全的 API、第三方认证和互联网认证的整合;提供用户生命周期管理,支持 SCIM 2 协议,基于 Apache Kafka 代理,通过连接器(Connector)实现身份供给同步;认证中心具有平台无关性、环境多样性。支持 Web、手机、移动设备等。如 Apple iOS、Andriod 等。将认证能力从 B/S 到移动应用全面覆盖;多种认证机制并存,各应用系统可保留原有认证机制,同时集成认证中心的认证;应用具有高度独立性,不依赖认证中心,又可用使用认证中心的认证,实现单点登录;基于 Java EE 平台,采用 Spring、MySQL、Tomcat、Redis、Apache Kafka 等开源技术,微服务架构,扩展性强;开源、安全、自主可控,许可证 Apache 2.0 License & MaxKey 版权声明。界面预览
想要了解更多请参考:https://gitee.com/dromara/MaxKey。
其实Dromara开源社区还有最知名的项目(也是star最多的项目)——Hutool,那我为什么不写呢。我想说,这框架普及率太高了,几乎是可以取代 Apache Common 包、Guava包的存在,程序员应该每个人都用下。
以上推荐的开源项目,也是 Dromara Java 社区里的精品项目,很多都已经是 GVP 项目了,用好这些框架/工具,真的能让工作效率大大提升。
我是蜗牛,大厂程序员,专注技术原创和个人成长,正在互联网上摸爬滚打。下期见!
首先我要介绍的是Sa-Token,可能是史上功能最全的轻量级Java权限认证框架。简单的使用方式,丰富的特性...
2023-02-22中场大师莫德里奇被换下时,安菲尔德球场鼓掌并高喊魔笛名字,魔笛,法比尼奥,足球竞赛,波兰足球,英国足球...
2023-02-22德讯早参今日策略关注大基建、数字经济、军工、工程建设大势研读德讯证顾观点:特斯拉释放重磅利好,4D...
2023-02-22当地时间2月21日,冬季风暴从美国西部开始延伸至北部平原和中西部,美国国家气象局大面积发布暴风雪和大...
2023-02-22皇马名宿本泽马认为,自大罗消失在球迷视野,足坛至今尚无球王出现,大罗向来都是我心中的第一人,他也...
2023-02-222月21日,杭州迎来2023年首轮集中土拍,共出让13宗地块,其中8宗触顶、2宗溢价、3宗底价成交,总收金182...
2023-02-211、《故宫藏画的故事》内容介绍:月的光华卷一窗凉风,在枝头上摇曳着不知谁的心事,闪烁的银光踩乱了故...
2023-02-21盘后数据显示,2月21日龙虎榜中,共10只个股出现了机构的身影,有7只股票呈现机构净买入,3只股票呈现机...
2023-02-21中国山东网-感知山东2月21日讯(记者张真玉通讯员牛爱菊)二月二龙抬头,开启一年好兆头。二月二理发表示从头
2023-02-21我就把美甲的那些指甲全部剪掉,然后才发现里面已经空了,去找了一下皮肤科的医生,他就说这种就是灰指甲
2023-02-21开年首月我国吸收外资超千亿元同比增长14 5%,外资,制造业,服务业,西部地区
2023-02-2123平阳农商银行CD002发布发行公告
2023-02-21事件2023年2月20日,中国人民银行授权全国银行间同业拆借中心公布贷款市场报价利率(LPR)为:1年期LPR...
2023-02-211、长边翻转和短边翻转中长边翻转是以A4纸较长的边翻页,类似A4纸张大小的书本的翻页。2、短边翻转是以...
2023-02-211、抹茶不建议和桃子一起吃。2、最好不要吃抹茶配桃子。抹茶中含有鞣酸,容易与桃子中的鞣酸发生反应,...
2023-02-21普天科技(002544 SZ):拟使用闲置募集资金不超过6 2亿元进行现金管理,监事会,普天科技,现金管理,自有资金
2023-02-201、春分是不能上坟,因为这一天是农历二月初八,公历的3月20日,老黄历上显示忌装修、动土、订婚、安葬...
2023-02-20导语:喝牛奶,也有禁忌?这6个真相早知道早受益,健康问题,别忽视家门口每年配送的鲜牛奶,早已是一代...
2023-02-20解答:1、一个名为日本爱妻家庭协会的非政府组织将每年的最后一天定为爱妻日,号召全日本的丈夫在这一天...
2023-02-20原标题:如何强化托育服务人才支撑——三岁以下婴幼儿托育服务发展观察(下)党的二十大报告指出,在幼...
2023-02-20融资客的行为一直备受市场关注,投资者寄望能从中捕捉到投资机会。证券时报·数据宝统计,2月17日共有31...
2023-02-20在英国英格兰西南部的萨默塞特郡,有两座著名的核电站,分别是欣克利角A核电站和欣克利角B核电站。欣克...
2023-02-201、别用你盗版的蒙娜丽莎微笑指着我。我的胃没有你想的那么强壮。——京M国《小时代》2、你不知道现实有...
2023-02-201、欧内的手好汉是一句鬼畜台词,是大家好啊我是电棍的倒放。2、出自b站up主海绵宝宝小风儿做的一系列关...
2023-02-20汽车现在已经越来越普及,基本上都快实现每家每户都有汽车了,那么汽车这么多的情况之下,我们在用车的...
2023-02-191、在学习架子鼓之前,先学习了解架子鼓的鼓谱。正在学习架子鼓的同学们,如果你不知道如何读鼓乐,请看...
2023-02-191、钓位的选择,很关键,记住几个常用的位置。2、对你一定有所帮助。本文到此分享完毕,希望对大家有所...
2023-02-19近日,Oppo在欧洲尼日利亚推出了入门级价位的全新OppoA532020。此外,这款手机还在欧洲的Lazada零售
2023-02-19最近,虞书欣频繁美貌营业,这辣妹身材可太出片了,是让女生都馋的身材了!虞书欣最近真的拿捏各种风格...
2023-02-19你需要的东西电锯手锯手锯是砍伐树木的传统工具。从前,所有的树都是用手锯砍倒的。即使在当今的现代世...
2023-02-19一、关于巷的组词的读法1、读法:[xiàng]2、读法:[hàng]二、关于巷的组词的释义3、[xiàng]
2023-02-191、如何修改图片大小,从网上下载的图片大小不一样,有时候图片太大或者太小,导致我们无法正常使用。有...
2023-02-181、安庆市卫生局卫生监督所是于2000年5月成立的副县级全额拨款事业单位,内设12个科室,现有在职职工80...
2023-02-18欢迎观看本篇文章,小升来为大家解答以上问题。上传速度慢怎么解决,解决方法很多人还不知道,现在让我...
2023-02-181、2014年6月28日,苏州蠡口家具城网上商城- 蠡口 华东规模最大的苏州蠡口家具城直销网-...
2023-02-18夏弥来为大家解答以下的问题,明信片尺寸,说一说明信片尺寸的简介,现在让我们一起来看看吧!1、国际标...
2023-02-18《夏末花开》英文名《FlowersBloomingattheEndofSummer》首先要感谢汉化组,让我能体验到这部艺术品。我...
2023-02-181、菜籽可以磨成粉,生菜籽粉采用生菜的种子经科学研磨杀菌加工而成,是粉末状,具有修复骨膜,生长软组...
2023-02-181、喜欢保健按摩的朋友一定听过或看过精油按摩,电影里也会拍到。那么什么是精油按摩呢?精油是怎么来的...
2023-02-17民生无小事,枝叶总关情。深圳在高质量发展过程中,持续把人民对美好生活的向往作为奋斗目标,将改革开...
2023-02-17欢迎观看本篇文章,小升来为大家解答以上问题。刷子李主要内容是什么,刷子李剧情很多人还不知道,现在...
2023-02-17电影院以“疫情防控、防止交叉感染”为由,不提供免费3D眼镜,观影需购买或自行携带——澎湃新闻2月17日...
2023-02-172月16日,中国—厄瓜多尔自贸协定第三次首席谈判代表会议以视频方式举行,双方确认结束自贸协定谈判。中...
2023-02-17“法夫王国(FifeKingdom)已经成为新酒厂的摇篮。越来越多人关注到苏格兰威士忌中这股不断增长的力量,...
2023-02-171、明日破柜者的最新交换代码是什么?明天方舟破坏王的兑换码更新到了愚人节,那么新的兑换码是什么呢?...
2023-02-17截至2023年2月16日收盘,海达股份(300320)报收于10 83元,下跌5 08%,换手率3 49%,成交量17 31万手,成交额1 92亿元。
2023-02-171、因为骸姐是妹控,完全按照了盾子的剧本演的,踩黑白熊也是盾子的主意但是盾子是从来不会按照剧本演戏...
2023-02-17欢迎观看本篇文章,小升来为大家解答以上问题。通过后视镜判断后车距离,这些技巧要知道很多人还不知道...
2023-02-17在目前国内的大中型的SUV领域里,汉兰达绝对算是个BUG版的存在。无论是在影响力还是在产品的本质上,汉...
2023-02-16恒大在广东清远大山里的大盘,孤独感满满,房价两三千难以置信,房价,大盘,城镇化,宏观经济,实体经济,恒...
2023-02-1602月16日15时西藏那曲疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、02月16日15时那曲疫...
2023-02-16“手机里有我儿子生前的照片……”
2023-02-161、索尼imx686和imx682的区别两者都是6400万像素,传感器尺寸为1 1 7英寸超大感光元件,单像素面积为1
2023-02-16投资不仅能形成经济增长的动力,又为未来持续发展打下基础。回看2022年,投资成为浙江和河南经济增长的...
2023-02-16吴淞园的空间布局也将融合产业链的布局。希望通过宝武的努力,能够保持既有产能不下降继续支撑地方经济...
2023-02-161、浪漫的沿海地区拥有完善的交通网络。2、杨卯高速、包茂高速(规划建设中)、325国道均从电白穿过,景区...
2023-02-161、第一,只要剪掉树的一圈树皮,树就能很快死掉。2、方法二:直接用斧头或者电锯把书锯下来。本文到此...
2023-02-16梦见拉屎,预示会有好运气,财运也会提高。男性梦见拉屎,预示在工作上能得到不错的发展机会,最近偏财...
2023-02-16周杰伦《完美主义》歌词作曲:周杰伦作词:方文山如果说怀疑,说到分离,如果这一切我想封闭我的孤独还...
2023-02-16今天来聊聊关于放年假通知怎么写简短,放年假通知的文章,现在就为大家来简单介绍下放年假通知怎么写简...
2023-02-16桂林山水甲天下,一年四季,从世界各地前往桂林游览的游客是络绎不绝。 秀美雄奇的山川美景,也让每...
2023-02-15补卡可以是原来的卡号,卡挂失可以到银行用原来的卡号,但用户需要支付一定的制卡费用,同时用户需要等...
2023-02-15晶科能源2月15日大宗交易平台共发生6笔成交,合计成交量800 00万股,成交金额1 14亿元。成交价格均为1...
2023-02-151、在北半球,树木朝向北面的一面,年轮较密;朝向南面的那面年轮稀疏。2、原因:如果是在北半球,那么...
2023-02-15基金抄底指基金长时间下跌后投资人员购入基金的行为。这是一种购入行为,投资者认为基金净值不会在基金...
2023-02-15中国大地财产保险股份有限公司。大地财产保险公司是由中国再保险(集团)股份有限公司,以投资人和主发...
2023-02-15口红是女生必备化妆品中的一个,当你问女生出门只能带一样化妆品的时候,会有大部分女生告诉你只用带一...
2023-02-15今天是上海新学期开学第一天。对虹口区的部分学生而言,今天的“开学第一课”,有点特别。一大早,他们...
2023-02-15可以。资卡本质上就是银行的储蓄卡,两者之间没有区别。并且,任何一家银行都可以办理工资卡。但普通储...
2023-02-15去不同的地方旅游选择好景点是很重要的,因为不同地区的景点能够给人不一样的感受,更是能够开阔视野增...
2023-02-15岭南股份(002717)02月15日在投资者关系平台上答复了投资者关心的问题。
2023-02-151、你是一个积极向上,有自信心的男孩。2、学习上有计划、有目标,能够合理安排自己的时间,学习状态挺...
2023-02-15我们在英语中,常常会遇到something这个单词,且会经常考到something的知识点,那么something的用法有哪...
2023-02-152月13日,北京证券交易所(以下简称“北交所”)融资融券交易业务正式启动,全天交易态势良好,迎来“开门...
2023-02-15深入学习宣传贯彻党的二十大精神凛冬已过暖风徐来新春天,新学期,新气象北航人,准备好了吗?今天,小...
2023-02-15员工在公司实现离职,在向老板递交了一份离职申请之后,老板如果同意离职,就可以写离职证明给这名员工...
2023-02-15大家好,我是CSM担当富纳森。在今天的博客中,我们有两个产品要介绍。对不起,今天这两件事都是关于DX产...
2023-02-15四年级的周记不需要太长,只要把事情完整记录,语言通顺流畅就是一篇合格的周记了。下面是学习啦小编给...
2023-02-15夏弥来为大家解答以下的问题,重庆九龙坡,说一说重庆九龙坡的简介,现在让我们一起来看看吧!1、九龙坡...
2023-02-142022年国庆节假期结束了,那么2022国庆节“假期综合征”应对指南是什么?下面是小编整理的2022国庆节“假...
2023-02-14在中国大学生涯中,我们已经在一个城市工作,没有正式踏入社会和平安。在学校的我们要好好对待,想在新人...
2023-02-14妈妈做一个的礼物,是非常有意义的礼物,因为它的价值不能以其价格来衡量,关键看母亲有多大年龄的需求...
2023-02-143个月宝宝育儿知识经验如果你家有3个月大的宝宝,欢迎来看看小编为大家整理了相关3个月宝宝育儿知识经验...
2023-02-1422进出13(增6)发布发行公告
2023-02-14每经AI快讯,有投资者在投资者互动平台提问:长江电力正在建设金沙江下游水风光一体化基地云南侧首批270...
2023-02-14伤感的人生感悟语录在平日的学习、工作或生活中,我们时常会在一些事情上受到启发,为了更好的记忆,我...
2023-02-14张颂文出演《乘龙怪婿》后,在初中同学的口中得知自己有了“贴吧”,他也经常透过这个平台与粉丝互动,...
2023-02-14豆瓣8 3分,全网催第二部,杨磊,剧本,三体,豆瓣,于和伟,奥运会,科幻世界
2023-02-141、少年王安石故事之三-- "害 "爹挨雨淋王安石从小聪明伶俐,邻居们都夸他心眼多,脑瓜灵。2、他爹听...
2023-02-141、炼金术师可以做上级元素结晶需要9级百分之百成功卷轴在拍卖行买需要20个下级元素结晶3个魔法珍珠可以做
2023-02-14我觉得送长辈礼物,最好是送“四不掉”的东西,长辈都会很喜欢的,比如四十岁,买一个珍珠项链,我觉得...
2023-02-14国道245起点和终点,国道245起点为四川省巴中市,终点为云南省金平苗族瑶族傣族自治县。245国道是中华人...
2023-02-141、《广州话分韵词林》是2013年羊城晚报出版社出版的图书。2、作者是杨子静、潘振邦。
2023-02-14cptpp成员国有哪些,cptpp成员国有日本、澳大利亚、加拿大、新西兰、墨西哥、智利、秘鲁、新加坡、文莱...
2023-02-13这要看是谁了,如果是一个盒子可以自己制作的卡片,也可以自制礼物盒,里面有自己喜欢的人物盒子,也可...
2023-02-13奥拓电子:公司已于2020年完成了基于知识图谱的智慧银行智能对话交互系统的开发,奥拓电子,知识图谱,智慧...
2023-02-13说明:有两个area函数说明绘制了两个区域,第一区域的开始位置坐标是(1,1),结束位置是(2,1)
2023-02-13简单来说,《新西游记》是一档 一个男人带着一群男人去外地旅游的综艺节目。复杂点说,他们要完成任务...
2023-02-13央视1套年代大剧《我们的日子》正在热播。说真的,一开始不少人都觉得这部剧不可能复刻《人世间》的收视...
2023-02-13富途资讯2月13日消息,港股震荡走弱,截至发稿,恒生指数跌0 97%,恒生科技指数跌1 19%,国企指数跌0...
2023-02-13Copyright © 2015-2022 起点水产网版权所有 备案号:皖ICP备2022009963号-12 联系邮箱: 39 60 29 14 2@qq.com