基于 Cookie 的 SSO 中间件 kisso
kisso = cookie sso
基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀。欢迎大家使用 kisso !!
1、支持单点登录
2、支持登录Cookie缓存
3、支持防止 xss攻击, SQL注入,脚本注入
4、支持 Base64 / MD5 / AES / PBE / RSA 算法
5、支持浏览器客户端校验
6、支持Cookie参数配置及扩展
7、支持跨域登录,模拟登录
8、支持在线人数统计
9、支持生成动态图片验证码
10、支持 app 移动端 api 服务验证,采用微信公众平台 api 验证机制认证
11、自带权限验证逻辑,支持基础 Shiro , SpringSecurity 权限系统
kisso_ApiServer 移动 APP 端 API 演示 demo
Maven 坐标:
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.baomidou%22%20AND%20a%3A%22kisso%22
1
2
3
4
5
|
<dependency> <groupId>com.baomidou</groupId> <artifactId>kisso</artifactId> <version>Maven </dependency> |
是单点登录系统,它给你制定好了规则按照它的要求做就可以,配置(复杂)好一切即可实现单点登录。
是一个中间件,提供 cookie 搭建 java web sso 的组件式解决方案。你不管使用任何架构都可以使用它,就像一个 U 盘需要使用就插入、不用就拔掉。
集中验证,所有请求都由 cas 集中验证,缺点cas服务压力巨大。kisso 分散验证,由各个系统验证 cookie 合法性,缺点秘钥要保护好。
cookie 而不是 session 它们有何区别 ?
采用的是加密会话 cookie 浏览器关闭立即失效,同时支持后台登录超时自动退出,支持客户端浏览器验证、访问 ip 及 cookie 安全配置等。
存放在服务器端,cookie 存放在客户端,存在 2 种状态:“ 第一种:持久 cookie 具有时效性,以文件的形式存放在客户机硬盘中,时间一到生命周期结束自动被删除。第二种:临时 cookie 又叫会话 cookie 放在浏览器内存中,浏览器关闭生命周期结束自动失效 ”。
session 更安全,如果 cookie 采取各种安全保护措施,此时的 cookie 一样安全。
轻松实现分布式服务部署,单点登录跨域访问等问题,换成 session 需要处理 session 复制及各种问题实现困难。
demo 提供的例子运行跑通后,再修改不要上来就急急忙忙改,不会了就截图发问,这样一则没有理解透彻实现原理,二则耽误别人的时间,实在是得不偿失。
? 这里跨域有 2 种 :
第一种、同一个根域名不同子域名,比如 my.baomidou.com 、 sso.baomidou.com 、other.baomidou.com 此时配置 domain 只需要配置 .baomidou.com 即可。
查看普通 demo : kisso_JFinal
演示 demo kisso_SpringMvc
演示 demo
第二种、完全不同的域名,比如 sso.baomidou.com git.oschina.net 此时比较复杂 kisso 采用的是 rsa 加密询问验证(较复杂)
查看跨域 demo: kisso_crossdomain
跨域演示 demo
除了密钥、域名、必须修改,其他默认配置或根据需要选择配置即可 查考点击 根据自己的需求选择配置。
很多朋友问?都谁在用 kisso !?
不要问我星星有几颗, 我会告诉你很多很多!!(保密)
(1)sso 登录状态
(2)跨域登录
hosts:
127.0.0.1 sso.test.com
127.0.0.1 my.web.com
访问 my.web.com:8090/index.html 如果未登录会重定向至sso域登录页面
登录成功 my.web.com 如图
普通登录
最新文章
- 深入理解OOP(第一天):多态和继承(初期绑定和编译时多态)
- 实战Centos系统部署Codis集群服务
- JQuery页面加载
- Point Grey FlyCapture 实例汇总
- iOS-TCP/IP、Http、Socket的区别
- hMailserver设置外部反病毒扫描程序
- C++ 编程第二章小结
- javascript设计模式5
- spring3 mvc使用注解方式时,不能扫描jar包里面的类
- VS2010调试小技巧
- [RxJS] Reactive Programming - What is RxJS?
- 这个接口管理平台 eoLinker 开源版部署指南你一定不想错过
- 201621123031 《Java程序设计》第11周学习总结
- SpringBoot 从application.yml中通过@Value读取不到属性值
- 多个css样式合并到一个“目录”css文件中
- (网页)12种不宜使用的Javascript语法(转)
- js文件中获取${pageContext.request.contextPath}
- bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 -- 凸包
- object-c的异常处理机制
- 制作rpm安装包
热门文章
- 中国象棋程序的设计与实现(十一)--第2次回答CSDN读者的一些问题
- 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(hash写法)
- 【转】 基于C#.NET的高端智能化网络爬虫
- Fragment的实际开发中总结(二)
- iOS 卖票中多线程分析;
- javascript模拟类的最佳实践
- Simditor用法
- 19.浏览器Window服务($window)
- ";getElementsByClassName is not a function"; 报错原因
- 洛谷 P1591 阶乘数码