基於CAS實現單點登錄(SSO):分享過程中遇到的問題及解決方案,讓你少走彎路

在做 單點登錄過程中,經歷了一些問題及解決方案,分享出來,可以讓你少走彎路。

主要分爲兩方面內容:基於CAS實現單點登錄(SSO)實例講解、CAS和Shiro集成


基於CAS實現單點登錄(SSO)實例講解 

配置完成之後出現問題404錯誤

首先查看對應應用的tomcat服務器的log日誌,報錯如下:

嚴重: Exception starting filter CAS Single Sign Out Filter

java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory

經過此分析,說明是log類找不到,也即系統運行需要的有關log類包沒有引入或引入錯誤,解決辦法:

將commons-logging-1.1.jar拷貝到“webapps\examples\WEB-INF\lib”下即可。

commons-logging-1.1.jar包是在cas-client-3.2.1\modules中。

 

證書保存位置如果在C

d:/tomcat.keystore是將生成的tomcat.keystore放到d盤根目錄下。注意若要放到c盤,在win7系統下,需要以管理員身份進入到命令行窗口中進行操作,否則是無法創建tomcat.keystore的。本例放到d盤下。

 


驗證HTTPS配置時,tomcat提示No Certificate file specified or invalid file format

tomcat server.xml https配置中,將protocol="HTTP/1.1"替換爲protocol="org.apache.coyote.http11.Http11Protocol"


 

解決一臺機器同時運行多個Tomcat服務

編輯Tomcat/conf/server.xml,修改5端口,並修改默認編碼爲utf-8(以支持中文鏈接)

    示例:

    

 <Serverport="8005"shutdown="SHUTDOWN">

 

     <Connector port="8080"protocol="HTTP/1.1" 

              connectionTimeout="20000" 

              redirectPort="8443"URIEncoding='UTF-8'/>

 

      <Connector port="8009"protocol="AJP/1.3"protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"redirectPort="8443"URIEncoding='UTF-8'/>


修改成:

    <Serverport="18005"shutdown="SHUTDOWN">

 

           <Connector port="18080"protocol="HTTP/1.1" 

              connectionTimeout="20000" 

              redirectPort="18443"URIEncoding='UTF-8'/>

 

           <Connector port="18009"protocol="AJP/1.3"protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"redirectPort="18443"URIEncoding='UTF-8'/>

 

CAS和Shiro集成

   這個過程正在進行中,遇到的問題及解決方案稍後會更新到這裏。


發佈了130 篇原創文章 · 獲贊 433 · 訪問量 45萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章