开源项目之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访问流程图

目录
相关文章
|
Android开发
优秀的开源项目
LQR-LQRWeChat-master--(高仿微信) 本项目基于融云SDK,使用目前较火的 Rxjava+Retrofit+MVP+Glide 技术开发。
954 0
|
安全 Android开发 前端开发
你可能不知道的10个新的开源项目
1. Bootstrap, 一个来自 Twitter 的工具包,用于快速开发 Web 应用和网站。   2. BrowserID, 一个安全,分散,开源,基于 email 地址的跨浏览器网站同步登录。
708 0
|
9月前
|
自然语言处理
分享开源项目Chatwoot
Chatwoot是一个开源的客户支持平台,它提供了一系列工具,使企业能够通过各种渠道(如电子邮件、社交媒体、网站聊天窗口等)与客户进行沟通。它的目标是为企业提供一个统一的界面,汇总来自不同渠道的客户对话,从而提高客户服务效率和效果。
134 0
开源项目推荐:MiNiGUI和HybridOS
开源项目推荐:MiNiGUI和HybridOS
141 0
|
JavaScript 物联网 中间件
2014年值得关注的10个开源项目(中)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/18887527 2014年值得关注的10个开源项目(中) 作者:chszs,转载需注明。
759 0
|
8月前
|
Kubernetes 监控 Cloud Native
开源项目推荐
探索 Kubernetes 工具和资源:Kubernetes Goat 提供了一个有漏洞的集群来学习安全实践;kube-state-metrics 收集集群状态指标以辅助监控;Goldilocks 优化 Kubernetes 资源请求;KubePlus 从 Helm 图表创建 Kubernetes API;kubecm 管理 kubeconfig 文件更便捷。
|
安全 测试技术
2014年值得关注的10个开源项目(下)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/18887603 2014年值得关注的10个开源项目(下) 作者:chszs,转载需注明。
680 0

热门文章

最新文章