基于 Cookie 的 SSO 中间件 kisso

摘要:
Kisso=cookiesso是一个基于cookie的SSO中间件,它是快速开发javaWeb登录系统的瑞士军刀。Kisso分布式验证。每个系统验证cookie的有效性。但是,密钥应该得到很好的保护。Kisso使用加密会话cookie浏览器在关闭时立即禁用。它还支持后台登录超时后自动注销、客户端浏览器验证、访问IP和cookie安全配置。

kisso   cookie sso

基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀。欢迎大家使用 kisso !! 

基于 Cookie 的 SSO 中间件 kisso第1张

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 依赖 jars

kisso_oauth2 演示 demo

kisso_ApiServer 移动 APP 端 API 演示 demo

kisso_JFinal 演示 demo

kisso_SpringMvc 演示 demo

kisso_crossdomain 跨域演示 demo

实例演示 SSM 架构后台管理系统


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 官方最新版本为准</version>
</dependency>



(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)、经常被问及的问题 ?

            在此重申下,下载源码的朋友先按照 demo 提供的例子运行跑通后,再修改不要上来就急急忙忙改,不会了就截图发问,这样一则没有理解透彻实现原理,二则耽误别人的时间,实在是得不偿失。


           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 !?

      不要问我星星有几颗, 我会告诉你很多很多!!(保密)



(1)sso 登录状态 


基于 Cookie 的 SSO 中间件 kisso第2张



(2)跨域登录

基于 Cookie 的 SSO 中间件 kisso第3张

hosts:

127.0.0.1 sso.test.com

127.0.0.1 my.web.com

访问 my.web.com:8090/index.html 如果未登录会重定向至sso域登录页面 

基于 Cookie 的 SSO 中间件 kisso第4张


登录成功 my.web.com 如图 

基于 Cookie 的 SSO 中间件 kisso第5张


普通登录

基于 Cookie 的 SSO 中间件 kisso第6张

基于 Cookie 的 SSO 中间件 kisso第7张

免责声明:文章转载自《基于 Cookie 的 SSO 中间件 kisso》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kotlin的一些特性介绍和与java C#的简单对比mailkit库收发邮件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle字符集的查看和修改

一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如...

Hibernate原理、配置及单表操作

一、Hibernate的配置文档 其中:hbm2ddl.auto中的create表示每次修改数据的时候都会删除原有的表,生成新的表结构,原有的数据不再存在;update表示在原有数据的基础上进行更新,不会删除原有的数据。 hibernate.default_schema属性设置成数据库的名称,将数据库设置为默认数据库,这样,SQL语句上都会加上默认数据库...

ashx文件中使用session提示“未将对象引用设置到对象的实例”

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data;usingSystem.Web.SessionState;namespacefriends{///<summary>///Handler的摘要说明///&l...

HTTP报文解析

HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体):  下面是一个实际的请求报文:  ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilt...

Nginx负载均衡会话共享

    在使用负载均衡的时候会遇到会话保持的问题,可通过如下方式进行解决 1.使用nginx的ip_hash,根据客户端的来源IP,将请求分配到相同服务器上 2.基于服务端的Session会话共享(mysql/memcache/redis/file)   在解决负载均衡会话问题我们需要了解session和cookie。 1.用户第一次请求服务端网站时,服务...

跨域单点登录实现(使用iframe)_勇敢的心_百度空间

跨域单点登录实现(使用iframe)_勇敢的心_百度空间 跨域单点登录实现(使用iframe) 2011-12-26 18:15 目前来说,据我的认识貌似必须使用iframe 提交表单的方式,ajax方式下无法写cookie(get请求除外)。 原理上很简单,但实现起来还是走了不少弯路,各种浏览器处理方式不一样也增加了调试的难度;几经曲折终于找到了一个...