基於 Cookie 的 SSO 中間件 kisso
kisso = cookie sso
基於 Cookie 的 SSO 中間件,它是一把快速開發 java Web 登錄系統(SSO)的瑞士軍刀。歡迎大家使用 kisso !!
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、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 登錄狀態
(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 如圖
普通登錄
基於 Cookie 的 SSO 中間件 kisso