開源項目之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訪問流程圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章