一、配置Tomcat,啓用SSL協議。
1.在CAS要安裝的機器上(也就是服務端)爲Tomcat生成用於SSL通訊的密鑰:keytool -genkey -alias tomcat -keyalg RSA,輸入密鑰密碼和相應參數,(注意:第一個參數CN一定要輸入CAS安裝機器名,其他參數就隨便了),結果是在用戶目錄中創建了名爲.keystore的密鑰文件。
2.從服務端導出密鑰文件:keytool -export -file server.crt -alias tomcat,輸入上一步中的密碼,結果在當前目錄生成server.crt密鑰文件。(注意:這個文件是要導入客戶端的JVM上的)
3.爲客戶端的JVM導入密鑰:keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file server.crt -alias tomcat,輸入密碼(注意:這裏的密碼不是上面設定的密碼,而是changeit),將創建cacerts文件。
4.修改服務端的Tomcat配置文件server.xml,去掉對於SSL的註釋,即開放8443端口,注意這裏需要在connector字段中加入keystorePass="password"參數,password即爲上面幾步中涉及到的密碼,keystoreFile=".keystorePath",.keystorePath即爲在第一步中生成的文件.keystore的全路徑,如/usr/java/bin/.keystore。
5.啓動Tomcat,測試https://server:8443/是否是需經過驗證方可訪問(注意:server爲服務端的IP地址或機器名)。
二、部署CAS Server 2.0.12到Tomcat
1.一種簡單的方法是將下載包中的cas.war文件直接複製到Tomcat的webapps目錄下。
2.另外一種方法,從sourceforge上找到ESUP-Portail CAS Generic Handler項目,利用esup-cas-quick-start生成一個最簡的TOMCAT,詳見我的下一篇文章。
3.啓動Tomcat,測試https://server:8443/cas,是否可訪問CAS主頁面(注意:server爲服務端的IP地址或機器名)。
三、部署CAS Client 2.0.11到Servlet-Examples
1.利用Servlet-Examples實例進行測試,將下載包中的casclient.jar文件複製到Servlet-Examples中WEB-INF目錄的lib下,這裏需要手工建立lib目錄。
2.修改Servlet-Examples的配置文件web.xml,加入以下的過濾器:
<!-- CAS Filters -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://server:8443/cas/login</param-value>
</init-param><!--這裏的server是服務端的IP-->
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://serName:8443/cas/proxyValidate</param-value>
</init-param><!--這裏的serName是服務端的主機名,而且必須是-->
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>client:port</param-value><!--client:port就是需要CAS需要攔截的地址和端口,一般就是這個TOMCAT所啓動的IP和port-->
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四、測試
1.啓動Tomcat,定位到Servlet-Examples應用,點擊Execute;
2.瀏覽器跳轉至CAS登錄首頁,注意在URL中已經附上了Servlet-Examples的Service名
3.輸入用戶名和密碼,這裏沒有對其驗證條件做修改,因此只要用戶名和密碼相同即可通過驗證。
4.驗證通過後瀏覽器又重新定位至Servlet-Examples並顯示該Servlet的內容。
5.點擊Http Header的Servlet應用,可以看到裏面對當前用戶的用戶名信息做了記錄。
6.以後訪問Servlet-Examples應用都無需再次輸入用戶名和密碼了。
至此,CAS Server和Client已經在Tomcat上成功部署與配置,並達到了預期的SSO效果。