一、系統(tǒng)配置
cas server3.1.1
cas client 2.1.1
tomcat5.5
二. Tomcat 配置,啟用SSL
a. 在要安裝CAS的機器上為Tomcat生成用于SSL通訊的密鑰:%JAVA_HOME%/bin/keytool -genkey -alias tomcat -keyalg RSA
這時需要輸入密鑰密碼和其他參數(shù)(第一個參數(shù)CN必須設置為CAS機器名,本機使用localhost測試),會在系統(tǒng)用戶目錄中生成.keystore密鑰文件。
b. 導出別名為tomcat的密鑰文件:%JAVA_HOME%/bin/keytool -export -file /path/server.crt -alias tomcat 這時需要輸入上一步設定的密碼,結果會在/path/目錄生成server.crt信任狀。
c. 為客戶端的JVM導入密鑰::%JAVA_HOME%/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file /path/server.crt -alias tomcat 注意:輸入密碼時密碼為"changeit",這是默認密碼。
d. 修改服務端Tomcat配置文件,啟用SSL如下:






把cas-server-webapp-3.1.1.war copy到tomcat\webapps下重命名為cas;可能需要修改的cas.properties里的cas server name。
https://localhost:8443/cas/longin
默認的cas server的驗證是只要用戶名和密碼一樣就可以登陸。可以通過修改deployerConfigContext.xml里的authenticationHandlers為自己的驗證機制,如mysql驗證用戶,如下

















以servlet-example為例子
在web.xml增加下面內(nèi)容






















當輸入http://localhost:8080/servlet-exampls/servlet/HelloWorld就會要求跳轉(zhuǎn)到cas login窗口要求身份驗證。
至此,SSO配置完成;但會出現(xiàn)下面問題
1:假設有A、B兩個應用程式,現(xiàn)在在瀏覽器窗口1輸入對A應用程式的請求,會跳轉(zhuǎn)到cas login窗口身份驗證;身份驗證完成后跳轉(zhuǎn)會A應用程式請求頁面
2:在窗口2輸入對B應用程式請求,還會需要身份驗證
3:在窗口1修改URL為對B應用程式的請求,不需求身份驗證
請看CAS SSO配置下文