這篇文章主要是針對單點登錄一中的框架結構進行對應的改造與優化,具體的改造優化主要包括以下幾點:
-
整合分佈式服務框架dubbo
改造前:通過HttpClient方式發送http請求到認證中心
改造後:通過dubbo微服務方式暴露認證中心接口服務 -
把oa與pro系統的攔截器提取出來
子系統中攔截器的實現邏輯基本相同,提取出來根據方便維護管理,同時也減少了代碼的冗餘。 -
提取代碼中常量的配置,通過在xml文件中進行常量配置
<property name="authenticationConfig"> <bean class="com.sso.client.authc.AuthenticationConfig"> <property name="loginUrl" value="/login" /> <property name="excludeUrls" value="^/$,^/login$,.+\.js,.+\.ico,.+\.css" /> <property name="cookieName" value="SSO_PLATEFORM" /> <property name="cookieDomain" value="sso.com"></property> </bean> </property> <property name="authenticationCache"> <bean class="com.sso.client.support.cache.RedisCache" init-method="init"> <property name="host" value="127.0.0.1"/> <property name="port" value="6379"/> <property name="timeout" value="7200"/> </bean> </property>
springboot+dubbo+redis代碼實現:https://github.com/lx-sunday/sso-dubbo.git
啓動項目步驟
1:在本地安裝並開啓zookeeper
2:在本地安裝並開啓redis
3:啓動項目sso-server pro-client oa-client
5:綁定host 127.0.0.1 oa.test.sso.com,訪問oa系統 oa.test.sso.com:8089,需要輸入用戶登錄信息
6:綁定host 127.0.0.1 pro.test.sso.com,訪問pro系統 pro.test.sso.com:8090,不需要輸入用戶登錄信息
7:pro系統退出登錄,刷新oa系統發現需要再次輸入登錄用戶信息