开源项目之kisso

简介:

kisso开源项目:https://gitee.com/baomidou/kisso

一、简介

kisso = cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞 士军刀。

应用场景如下:

1.支持单点登录

2、支持登录Cookie缓存

3、支持防止 xss攻击, SQL注入,脚本注入

4、支持 Base64 / MD5 / AES / PBE / RSA 算法

5、支持浏览器客户端校验

6、支持Cookie参数配置及扩展

7、支持跨域登录,模拟登录

8、支持在线人数统计

9、支持生成动态图片验证码

10、支持 app 移动端 api 服务验证,采用微信公众平台 api 验证机制认证

11、支持踢出指定登录用户

二、kisso 是什么原理与 cas 区别

1.kisso原理说明

kisso 采用的是加密会话 cookie 机制实现单点登录 SSO 服务,具备“无状态”、“分散验证” 等特性。

a.session 存放在服务器端,cookie 存放在客户端,存在 2 种状态:

第一种:持久 cookie 具 有时效性,以文件的形式存放在客户机硬盘中, 时间一到生命周期结束自动被删除;

第二种:临时 cookie 又叫会话 cookie 放在浏览器内存中,浏览器关闭生命周期结束自动失效。

b.单纯不做任何改变而言 session 更安全,如果 cookie 采取各种安全保护措施,此时的 cookie 一样安全。

c.cookie 轻松实现分布式服务部署,单点登录跨域访问等问题,换成 session 需要处理 session 复制及各种问题实现困难。

2.kisso与cas的区别

a.cas 是单点登录系统,它给你制定好了规则按照它的要求做就可以,配置(复杂)好一切即可实 现单点登录;

b.kisso 是一个中间件,提供 cookie 搭建 java web sso 的组件式解决方案。你不管使用任何架构都可以使用它,就像一个 U 盘需要使用就插入、不用就拔掉。

c.cas 集中验证,所有请求都由 cas 集中验证,缺点cas服务压力巨大。kisso 分散验证,由各个系 统验证 cookie 合法性,缺点秘钥要保护好。

3.maven依赖

   <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>kisso</artifactId>
       <version>3.6.10</version>
   </dependency>
   <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcprov-jdk14</artifactId>
       <version>1.50</version>
   </dependency>
  <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
       <version>1.1.46</version>
  </dependency>

注意:
(1)如果想自己实现 Token 解析,实现 com.baomidou.kisso.common.parser.SSOParser 类 (解析接口类),修改配置文件 sso.properties 属性 sso.parser.class 此时 kisso 会调用您定义的解析类,不需要再依赖 fastjson 库。
(2)自己实现 Token 加密,实现 com.baomidou.kisso.common.encrypt.SSOEncrypt 类(加密解密接口类),修改配置文件 sso.properties 属性 sso.encrypt.class 不在需要依赖 bcprov 库

三、sso.properties如何配置
配置如下,其他均可以采用默认配置

sso.secretkey=56jp2s5q83ZTE74ri6
sso.cookie.domain=.baomidou.com
sso.login.url=http://demo.baomidou.com:8080/Blog/views/login.html

四、配置

1.web.xml配置



kissoConfigLocation
classpath:properties/sso.properties

com.baomidou.kisso.web.KissoConfigListener

2.spring-mvc.xml配置











两种方式任选一种即可

五、项目模块

六、跨域原理

七、Web访问流程图

八、移动端API访问流程图

目录
相关文章
|
6月前
|
Kubernetes 监控 Cloud Native
开源项目推荐
探索 Kubernetes 工具和资源:Kubernetes Goat 提供了一个有漏洞的集群来学习安全实践;kube-state-metrics 收集集群状态指标以辅助监控;Goldilocks 优化 Kubernetes 资源请求;KubePlus 从 Helm 图表创建 Kubernetes API;kubecm 管理 kubeconfig 文件更便捷。
|
6月前
|
前端开发
决定做一个开源项目
决定做一个开源项目
26 0
|
消息中间件 缓存 NoSQL
2018-2021我的开源项目总结
2018-2021我的开源项目总结
93 0
|
消息中间件 移动开发 自然语言处理
2018至2023我的开源项目分享
2018至2023我的开源项目分享
115 0
开源项目推荐:MiNiGUI和HybridOS
开源项目推荐:MiNiGUI和HybridOS
134 0
|
消息中间件 分布式计算 Kafka
如何让开源项目成为你的良师益友
开源项目不仅仅给公司带来巨大价值,同时也可以给使用者自身带来巨大价值。
2799 0
|
NoSQL Redis 数据安全/隐私保护
开源项目
renren-security 3.1.0 发布:拿来即用的权限管理系统 基于 Redis 实现的分布式队列 KMQueue lombok
929 0
|
存储
acffo的开源项目汇总
1、 XWaveView  , 流动波浪效果                            2、LogRecordHelper, logcat日志记录存储到文件 可以指定TAG , 将logcat日志写入文件,当log日志过多需要分析的时候使用。
1168 0
下一篇
DataWorks