QQ交流群:454343484、769134727
项目合作微信:joe466350665
smart-sso使用当下最流行的SpringBoot技术,基于Cookie + OAuth2认证授权 + RBAC权限设计,为您构建一个轻量级、易理解、高可用、高扩展性的单点登录权限管理应用基层。
-
轻量级: 借鉴业界CAS原理,基于SpringBoot和OAuth2协议的授权码模式极简实现;
-
跨域支持: 服务端和客户端允许部署在不同域名下,实现跨域的单点登录访问机制;
-
自动续约: 使用Oauth2协议的token失效机制,通过refreshToken刷新时自动更新服务端凭证时效,完成自动续约;
-
按钮级权限控制: 服务端对权限进行菜单和按钮分类,通过请求的uri和请求方法匹配,实现按钮级权限控制;
-
分布式部署: 服务端和客户端都支持多实例部署场景,基于redis实现分布式Token管理;
技术 | 版本 | 说明 |
---|---|---|
spring-boot | 2.5.13 | 容器 + MVC框架 |
spring-boot-starter-data-redis | 2.5.13 | 分布式场景Token管理 |
spring-boot-starter-freemarker | 2.5.13 | 模板引擎 |
mybatis-plus-boot-starter | 3.5.2 | ORM框架 |
springfox-boot-starter | 3.0.0 | 文档 |
httpclient | 4.5.14 | 授权码认证,客户端和服务端通信 |
smart-sso
├── smart-sso-demo -- 客户端示例
├── smart-sso-server -- 单点登录权限管理服务端
├── smart-sso-starter -- 依赖装配模块
│ ├── smart-sso-starter-base -- 公用的基础依赖装配
│ ├── smart-sso-starter-client -- 客户端依赖装配
│ ├── smart-sso-starter-client-redis -- 客户端依赖装配,分布式部署场景redis支持
│ ├── smart-sso-starter-server -- 服务端依赖装配
│ ├── smart-sso-starter-server-redis -- 服务端依赖装配,分布式部署场景redis支持
注:
1.红色实线可以理解服务端也需要单点登录,同样是其自身的一个客户端;
2.红色虚线表示无论是服务端还是客户端,当需要集群部署时,可选用Redis版本的依赖包来完成Token的共享存储;