发布于 2015-12-25 03:29:21 | 204 次阅读 | 评论: 0 | 来源: 网友投递
kisso 基于 Cookie 的 SSO 中间件
kisso = cookie sso是一个基于 Cookie 的 SSO 中间件,欢迎大家使用 kisso !!
kisso = cookie sso
基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀。引用 @JFinal詹波的一句话:"为您节约更多时间,去陪恋人、家人和朋友 :) "。
首先感谢 @跳蚤@北风刮的不认真了 提出的宝贵改进意见,期待更多人加入 kisso 来完善它!
kisso-3.5 主要升级方向简化跨域流程, 支持 JFinal 插件化使用 kisso_Jfinal 演示 demo,token 结构 spring 注入启动等人性化配置。
更多介绍继续往下看...
主要升级内容:
1、合并方法 setSSOCookie 与 authSSOCookie 通过 boolean 变量选择,为了更好理解之间的区别。
2、几处方法名修改,例如:SSOHelper 原方法名 login (清理登录状态并跳至登录界面)改为 clearRedirectLogin 更加直观。
3、WebKissoConfigurer 初始化:支持 web.xml 配置、同时支持 spring bean 注入。
4、新增跨域属性配置 sso.role 标识当前系统角色名称,跨域作为失败 rsa 密钥使用。
5、以插件形式扩展支持 jfinal 框架。
6、SSOToken 中 appId, userId 移至 Token 改为 String 类型(支持字符类型主键,并作为缓存主键)
7、AuthToken 增加 data 属性自定义传输数据参数。
8、其他,及文档完善。
(1)、kisso 是什么,与 cas 区别 ?各有优劣看官自悟!
1、cas 是单点登录系统,它给你制定好了规则按照它的要求做就可以,配置(复杂)好一切即可实现单点登录。
2、kisso 是一个中间件,提供 cookie 搭建 java web sso 的组件式解决方案。你不管使用任何架构都可以使用它,就像一个 U 盘需要使用就插入、不用就拔掉。
3、cas 集中验证,所有请求都由 cas 集中验证,缺点cas服务压力巨大。kisso 分散验证,由各个系统验证 cookie 合法性,缺点秘钥要保护好。
(2)、为什么是 cookie 而不是 session 它们有何区别 ?
kisso 采用的是加密会话 cookie 浏览器关闭立即失效,同时支持后台登录超时自动退出,支持客户端浏览器验证、访问 ip 及 cookie 安全配置等。
1、session 存放在服务器端,cookie 存放在客户端,存在 2 种状态:“第一种:持久 cookie 具有时效性,以文件的形式存放在客户机硬盘中,时间一到生命周期结束自动被删除。第二种:临时 cookie 又叫会话 cookie 放在浏览器内存中,浏览器关闭生命周期结束自动失效 ”。
2、单纯不做任何改变而言 session 更安全,如果 cookie 采取各种安全保护措施,此时的 cookie 一样安全。
3、cookie 轻松实现分布式服务部署,单点登录跨域访问等问题,换成 session 需要处理 session 复制及各种问题实现困难。
(3)、经常被问及的问题 ?
1、跨域是什么 ? 这里跨域有 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
2、改成 ip 支持么 ?
支持! 注意访问时候使用 ip 访问,domain 的配置 ip 即可,不要是 .192.168.1.3 注意此时不要在前面加个 . 点。
3、sso.properties 怎么去配置 ?
除了秘钥、域名、必须修改,其他默认配置或根据需要选择配置即可查考点击根据自己的需求选择配置。
很多朋友问?都谁在用 kisso !?
不要问我星星有几颗, 我会告诉你很多很多!!(保密)