使用shiro-cas實現單點登錄,多點注銷


一,需求

  因為公司內部子系統較多,需要建立一個門戶網站把各個子系統接入進來,實現統一登錄。

二,單點登錄原理

  Shiro 1.2開始提供了Jasig CAS單點登錄的支持,單點登錄主要用於多系統集成,即在多個系統中,用戶只需要到一個中央服務器登錄一次即可訪問這些系統中的任何一個,無須多次登錄。此處我們使用Jasig CAS v4.0.0版本。

三,配置服務端

  1,生成證書

    使用JDK的keytool命令,生成證書(包含證書/公鑰/私鑰)到D:\localhost.keystore:

      keytool -genkey -keystore "D:\localhost.keystore" -alias localhost -keyalg RSA -validity 36500

    輸入密鑰庫口令: 123456  //后面會用到,需要記住

    再次輸入新口令: 123456

    您的名字與姓氏是什么?

       [Unknown]:  localhost    //實際情況中為服務器的域名

    您的組織單位名稱是什么?

       [Unknown]:  bestpay

    您的組織名稱是什么?

       [Unknown]:  bestpay

    您所在的城市或區域名稱是什么?

       [Unknown]:  shanghai

    您所在的省/市/自治區名稱是什么?

       [Unknown]:  shanghai

    該單位的雙字母國家/地區代碼是什么?

       [Unknown]:  cn

    CN=localhost, OU=bestpay, O=bestpay, L=shanghai, ST=shanghai, C=cn是否正確?

       [否]:  y

    輸入 <localhost> 的密鑰口令

         (如果和密鑰庫口令相同, 按回車):

    通過如上步驟,生成證書到D:\ localhost.keystore

  2,修改tomcat的server.xml

    此處使用了apache-tomcat-7.0.40版本,打開conf/server.xml,找到:

1 <!--  
2 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
3        maxThreads="150" scheme="https" secure="true"  
4        clientAuth="false" sslProtocol="TLS" />  
5 --> 

    替換為:

1 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
2        maxThreads="150" scheme="https" secure="true"  
3        clientAuth="false" sslProtocol="TLS"   
4        keystoreFile="D:\localhost.keystore" keystorePass="123456"/> 

    keystorePass就是生成keystore時設置的密碼。

  3,將其cas-server-webapp模塊封裝到服務端的項目模塊中,目錄結構如圖:

  4,啟動tomcat,輸入https://localhost:8443/login,輸入用戶名:casuser,密碼:Mellon即可登錄

 

 

  

四,配置客戶端


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM