????????kisso = cookie sso 基于 Cookie 的 SSO 中間件,它是一把快速開發(fā) java Web 登錄系統(tǒng)(SSO)的瑞士軍刀。詳細(xì)內(nèi)容請(qǐng)?jiān)L問網(wǎng)站https://gitee.com/baomidou/kisso原理圖如下:
?
????????kisso實(shí)現(xiàn)單點(diǎn)登錄播玖,雖然已經(jīng)是很幾年前的東西了弧械,更新也很少,但是對(duì)于一些簡(jiǎn)單的牺氨、安全性要求低的網(wǎng)站或者系統(tǒng)依然可以使用顶掉,使用適合自己的才是最好的〔菽龋現(xiàn)在的版本最高是3.7.5,完善了很多功能修改了很多bug痒筒,但是使用struts的用戶發(fā)現(xiàn)源碼里邊沒有KissoConfigListener這個(gè)類宰闰,其實(shí)這這個(gè)版本較之前3.6.x更改了很多東西茬贵,使用springboot+kisso相當(dāng)?shù)姆奖悖恍枰猘pplication.properties簡(jiǎn)單幾行配置就可以了移袍,但是依然有很多項(xiàng)目是用struts所以使用或者升級(jí)出現(xiàn)問題解藻,廢話一堆,現(xiàn)在入正題咐容。
????????要解決這個(gè)問題舆逃,其實(shí)很簡(jiǎn)單蚂维,因?yàn)閗isso代碼是開放的戳粒,大家copy一份改改源碼就可以了,我們可以添加KissoConfigListener類虫啥,如果不知道如何寫最簡(jiǎn)單就是參考3.6.x里邊的代碼(如果沒有相應(yīng)版本源碼可以反編譯class查看)蔚约,或者可以實(shí)現(xiàn)自己的監(jiān)聽器,KissoConfigListener主要的作用就是讀取sos.properties里邊的配置初始化SSOConfig涂籽,所以我們知道作用就很好解決苹祟。我們甚至可以不使用監(jiān)聽器 直接實(shí)例化一個(gè)SSOConfig對(duì)象,調(diào)用SSOConfig.init(SSOConfig ssoConfig)也可以评雌。
注意事項(xiàng):struts集成3.7.5可能會(huì)涉及到缺包树枫,以下是我一個(gè)demo中使用的包列表如下
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
fastjson-1.2.58.jar
freemarker-2.3.19.jar
jackson-annotations-2.8.0.jar
jackson-core-2.8.11.jar
jackson-coreutils-1.6.jar
jackson-databind-2.8.11.3.jar
jackson-dataformat-yaml-2.8.11.jar
javassist-3.11.0.GA.jar
jjwt-0.9.1.jar
kisso-3.7.5.jar
log4j-1.2.14.jar
log4j-1.2.17.jar
log4j-over-slf4j-1.7.25.jar
ognl-3.0.6.jar
slf4j-api-1.7.25.jar
slf4j-ext-1.7.25.jar
slf4j-log4j12-1.6.1.jar
struts2-core-2.3.16.1.jar
xwork-core-2.3.16.1.jar
如果老項(xiàng)目jdk版本較低上邊包報(bào)錯(cuò),可以自己打包源碼試試景东,或者使用低版本的kisso砂轻。
demo源碼在此:https://download.csdn.net/download/angrybirds0527/11459188