1 Star 0 Fork 272

枫灵 / smart-sso

forked from a466350665 / smart-sso 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.md 5.96 KB
一键复制 编辑 原始数据 按行查看 历史
zhoule 提交于 2020-09-15 14:53 . readme修改

smart-sso

License PRs Welcome GitHub stars GitHub forks

QQ交流群:454343484🈵、769134727(提供开发工具下载)

简述

   smart-sso定位用当下最流行的SpringBoot + Spring + Mybatis技术,为您构建一个易理解、高可用、高扩展性的单点登录权限管理应用基层,方便实现快速开发。权限按钮级(可控制到Controller中方法)、支持分布式(Spring + Redis提供分布式Session)。

部署文档

组织结构

smart-sso
├── smart-sso-client -- 客户端依赖包,提供登录认证、授权管理
├── smart-sso-demo -- 客户端
├── smart-sso-server -- 服务端

技术选型

后端

  • JDK:1.8+
  • 数据库:Mysql
  • 项目构建工具:Maven 3.3.3
  • API文档:Springfox-Swagger2 2.6.1
  • MVC框架:SpringBoot 2.1.0.RELEASE
  • 核心框架:Spring 5.1.2.RELEASE
  • ORM框架:MyBatis 3.5.1
  • RPC框架:hessian 4.0.38
  • JSON工具:Fastjson 1.2.69
  • 数据库连接池:Druid 1.0.15
  • 日志管理:SLF4J 1.7.21
  • 单点登录:极简基于Cookie实现

前端

浏览器兼容

  • Internet Explorer 11
  • Internet Explorer 10
  • Internet Explorer 9
  • Internet Explorer 8
  • Google Chrome 14+
  • Firefox 5+
  • Safari 5
  • Opera 11
  • 手机浏览器兼容

对比Cas + Shiro

请求协议

  • Cas:默认https,如果使用http需要把cas server解压修改配置参数。
  • Smart:默认http,可选配为Https,减少配置,降低门槛。

配置层面

  • Cas:在web.xml中指定的TicketValidationFilter、AuthenticationFilter及SingleSignOutFilter存在重复的serverName参数,serverName的修改,需要分别修改三处。
  • Smart:将serverName定义在properties文件中,通过Spring的<context:property-placeholder />标签注入,简化配置。(毕竟当今大部分Java项目都会用到Spring框架)

耦合度

  • Shiro:大家更多是熟悉通过annotation或者配置文件的方式去控制权限,有相对较低的耦合。
  • Smart:将权限集中管理在权限系统,需要的时候配置Filter,几乎无耦合。

权限变动服务重启

  • Shiro:通过annotation或者配置文件配置的权限,修改都需要重启服务。
  • Smart:权限的修改通过MQ广播(可选配),服务无需重启。

分布式部署

  • Shiro:通常大家部署依赖Shiro注入的RedisSession。
  • Smart:通过大家更为常用的Spring,覆盖HttpSession注入RedisSession。

注:Cas和Shiro的风光伟绩就无需笔者在此多加吹捧,现在只是关起门来聊聊Smart的优势,当然个人的理解和知识面也有限,有描述不对的地方,也欢迎大家加群探讨。友善!勿喷!谢谢!

架构图

架构图

单点登录原理

单点登录原理

单点退出原理

单点退出原理

数据库模型

数据库模型

效果展示

代码展示

API文档

API文档

Dubbo监控页

单点登录页

权限管理页

手机浏览器展示

作者寄语

艺术地做好一件擅长的事

Java
1
https://gitee.com/fengling001/smart-sso.git
git@gitee.com:fengling001/smart-sso.git
fengling001
smart-sso
smart-sso
master

搜索帮助