JA-SIG(CAS)學習筆記1

實驗背景: 
系統環境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 
主機完整名稱: Linly 
瀏覽器: FireFox V2.0.0.11 

實驗步驟: 
STEP 1,搭建Java Web服務器環境 
安裝 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443 
JAVA_HOME = D:\Java\jdk1.6.0_04 
CATALINA_HOME = D:\Java\apache-tomcat-6.0.14 
安裝完畢,啓動Tomcat ,在瀏覽器上 測試 http://Linly:8080/

出現上述界面,代表系統STEP1成功搭建。 

STEP 2,使用Java Keytool工具爲系統生成HTTPS證書,併爲系統註冊 
(Java Keytool相關資料可參閱:Java keytool 安全證書學習筆記), 在DOS窗體運行如下指令(建議編寫一個BAT批處理文件執行) 
[quote] 
cls 
rem please set the env JAVA_HOME before run this bat file 
rem delete alia tomcat if it is existed 
keytool -delete -alias tomcatsso -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit 
keytool -delete -alias tomcatsso -storepass changeit 
(註釋: 清除系統中可能存在的名字爲tomcatsso 的同名證書) 
rem list all alias in the cacerts 
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit 
(註釋: 列出系統證書倉庫中存在證書名稱列表) 
rem generator a key 
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=linly" -storepass changeit 
(註釋:指定使用RSA算法,生成別名爲tomcatsso的證書,存貯口令爲changeit,證書的DN爲"cn=linly" ,這個DN必須同當前主機完整名稱一致哦,切記!!!)rem export the key 
keytool -export -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit 
(註釋: 從keystore中導出別名爲tomcatsso的證書,生成文件tomcatsso.crt)rem import into trust cacerts 
keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -keystore %java_home%/jre/lib/security/cacerts -storepass changeit
(註釋:將tomcatsso.crt導入jre的可信任證書倉庫。注意,安裝JDK是有兩個jre目錄,一個在jdk底下,一個是獨立的jre,這裏的目錄必須同Tomcat使用的jre目錄一致,不然後面Tomcat的HTTPS通信就找不到證書了) 
rem list all alias in the cacerts 
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit 
(註釋:列出jre可信任證書倉庫中證書名單,驗證先前的導入是否成功,若是導入成功,應該在列表中能找到tomcatsso這個別名,以下圖)[/quote]java

同時,在D:\Java\jdk1.6.0_04\jre\lib\security目錄下能找到「tomcatsso.crt」這個文件;在C:\Documents and Settings\Linly目錄下能找到「.keystore」文件。 
知足上述條件則STEP2部署完成。 

STEP 3,配置Tomcat的HTTPS服務 
編輯D:\Java\apache-tomcat-6.0.14\conf下的server.xml文件,在connector的配置位置添加如下的配置: 
[quote]<Connector protocol="org.apache.coyote.http11.Http11Protocol" 
port="8443" minSpareThreads="5" maxSpareThreads="75" 
enableLookups="true" disableUploadTimeout="true" 
acceptCount="100" maxThreads="200" 
scheme="https" secure="true" SSLEnabled="true" 
keystoreFile="C:/Documents and Settings/new/.keystore" keystorePass="changeit" 
truststoreFile="D:/Java/jdk1.6.0_04/jre/lib/security/cacerts" 
clientAuth="false" sslProtocol="TLS"/>[/quote] 

啓動Tomcat,訪問https://linly:8443/,出現如下界面說明HTTPS配置生效:web

STEP 4,爲HelloWorldExample程序配置CAS過濾器 
訪問http://linly:8080/examples/servlets/servlet/HelloWorldExample,出現如下界面說明應用正常啓動:算法

編輯D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加以下信息: 
[quote]<filter> 
<filter-name>CAS Filter</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://Linly:8443/cas/login</param-value> 
</init-param> 
<init-param> 
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> 
<param-value>https://Linly:8443/cas/serviceValidate</param-value> 
</init-param> 
<init-param> 
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> 
<param-value>Linly:8080</param-value> 
</init-param> 
</filter> 
[/quote] 

[quote] 
<filter-mapping> 
<filter-name>CAS Filter</filter-name> 
<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern> 
</filter-mapping> 
[/quote] 

拷貝casclient.jar文件到目錄D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。 
因爲咱們使用的是Tomcat6.0.14,所以,還要拷貝commons-logging-1.0.4.jar到該目錄下。 

STEP 5,部署JA-SIG(CAS)服務器 
拷貝cas.war到D:\Java\apache-tomcat-6.0.14\webapps目錄下。啓動Tomcat,訪問網址http://linly:8080/cas/index.jsp,出現如下畫面:apache

輸入用戶名/密碼 :linly/linly(任意兩個相同的字竄),點擊「登陸」,出現如下畫面:瀏覽器

表示CAS服務器配置運行成功。 


STEP 6,測試JA-SIG(CAS)部署結果 
啓動Tomcat。 
測試使用瀏覽器登錄如下網址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,頁面將彈出如下認證框,點擊「肯定」tomcat

頁面將重定向到JA-SIG的SSO登陸認證頁面安全

輸入用戶名=密碼,如:linly/linly,則經過驗證,進入應用的入口界面,以下:服務器

細心的用戶將發現,此時的URL再也不是: 
http://linly:8080/examples/servlets/servlet/HelloWorldExample, 
URL的尾端帶上了一個ticket參數: 
http://linly:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-2-qTcfDrdFb0bWndWgaqZD 
到此,JA-SIG(CAS)服務器的初步SSO部署宣告成功。app

相關文章
相關標籤/搜索