CAS Tomcat配置
CAS使用及配置
tomcat 5.5.27?配置會不一樣
cas-server-3.0.5.zip??下載地址http://www.ja-sig.org/downloads/cas/cas-server-3.0.5.zip
cas-client-java-2.1.1.zip?下載地址http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip
cas-server-release 下載地址http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip
第一步安裝SSL證書
我的tomcat是在E:/zy/tomcat5.5?用$t_home$代替
開始==>cmd==>進入到$t_home$下,命令如下
E:/zy/tomcat5.5>keytool -genkey -alias casserver -keypass changeit -keyalg RSA -keystore server.keystore
輸入keystore密碼:##輸入changeit
再次輸入新密碼: ##輸入changeit
您的名字與姓氏是什么?
? [Unknown]:? localhost ##這里是輸入域名或者IP,如果是本機就輸入localhost,這個必填
您的組織單位名稱是什么?
? [Unknown]:? 1? ##數字是自己填寫,你可以填自己的,也可不填,回車跳過
您的組織名稱是什么?
? [Unknown]:? 2
您所在的城市或區域名稱是什么?
? [Unknown]:? 3
您所在的州或省份名稱是什么?
? [Unknown]:? 4
該單位的兩字母國家代碼是什么
? [Unknown]:? 5
CN=localhost, OU=1, O=2, L=3, ST=4, C=5 正確嗎?
? [否]:? y
這步結束后,就會在$t_home$下看到server.keystore文件
第二步導出證書
E:/zy/tomcat5.5>keytool -export -alias casserver -keypass changeit -file server.crt -keystore server.keystore
輸入keystore密碼:##輸入changeit
保存在文件中的認證 <server.crt>
這步結束后,就會在$t_home$下看到server.crt文件
第三步導入到受權證書中
E:/zy/tomcat5.5>keytool -import -alias casserver -file server.crt -keypass changeit -keystore cacerts
注意:我這里是在$t_home$生成一個cacerts文件,然后拷貝到$java_home$/jre/lib/security/文件夾下
輸入keystore密碼:##輸入changeit
再次輸入新密碼:?##輸入changeit
所有者:CN=localhost, OU=1, O=2, L=3, ST=4, C=5
簽發人:CN=localhost, OU=1, O=2, L=3, ST=4, C=5
序列號:4a44785d
有效期: Fri Jun 26 15:27:25 CST 2009 至Thu Sep 24 15:27:25 CST 2009
證書指紋:
???????? MD5:AC:D8:48:5B:A7:8C:52:9D:F9:49:B5:58:47:10:B5:53
???????? SHA1:4F:01:AD:17:CE:F3:B8:D8:81:E4:47:23:48:AC:24:01:FD:FB:7C:FA
???????? 簽名算法名稱:SHA1withRSA
???????? 版本: 3
信任這個認證? [否]:? y
認證已添加至keystore中
這步結束,就會在$t_home$下看到cacerts
第四步將cacerts拷貝至$java_home$下
要仔細查看你的$java_home$指向的是哪個jdk安裝文件夾,有的人在機器上裝了多個jdk,所以一定要看清楚
將cacerts文件拷貝到$java_home$/jre/lib/security/文件夾下
第五步布署CAS服務端
將cas-server-3.0.5.zip解壓,把target目錄下的cas.war包拷貝至$t_home$/webapps文件夾下
第六步配置tomcat的server.xml
打開$t_home$/conf/server.xml文件
找到<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
下面通常會有一段注釋掉的配置
??? <Connector port="8443" maxHttpHeaderSize="8192"
?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" disableUploadTimeout="true"
?????????????? acceptCount="100" scheme="https" secure="true"
?????????????? clientAuth="false" sslProtocol="TLS"/>
去掉注釋,然后修改為
??? <Connector port="8443" maxHttpHeaderSize="8192"
?????????????? protocol="org.apache.coyote.http11.Http11Protocol"???**增加的
?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" disableUploadTimeout="true"
?????????????? acceptCount="100" scheme="https" secure="true"
?????????????? clientAuth="false" sslProtocol="TLS"
?????????????? keystoreFile="server.keystore" keystorePass="changeit"/>???**增加的
這里是你的server.keystore文件和輸入的認證密碼changeit
注意:這是tomcat5.5.20的修改代碼,其版的tomcat修改略有不同,我沒有測試其它版,請自己測試
*****************************tomcat4.1.34配置
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
?????????? port="8443" enableLookups="true" scheme="https" secure="true"
?????????? acceptCount="100" useURIValidationHack="false" disableUploadTimeout="true"
?????????? clientAuth="false" sslProtocol="TLS"
?????????? keystoreFile="server.keystore" keystorePass="changeit"/>
*****************************tomcat5.5.9配置
<Connector port="8443" maxHttpHeaderSize="8192"??
?????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"??
?????????? enableLookups="false" disableUploadTimeout="true"??
?????????? acceptCount="100" scheme="https" secure="true"??
?????????? clientAuth="false" sslProtocol="TLS"????
?????????? keystoreFile="server.keystore"????
?????????? keystorePass="changeit"/>
*****************************tomcat6.0.10配置
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"??
?????????? port="8443" minSpareThreads="5" maxSpareThreads="75"??
?????????? enableLookups="true" disableUploadTimeout="true"????
?????????? acceptCount="100"? maxThreads="200"??
?????????? scheme="https" secure="true" SSLEnabled="true"??
?????????? clientAuth="false" sslProtocol="TLS"??
?????????? keystoreFile="D:/tools/apache-tomcat-6.0.10/server.keystore"????
?????????? keystorePass="changeit"/>
tomcat6支持3種配置,有興趣請查看http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
第七步測試服務端
打開瀏覽器https://localhost:8443/cas 看看是否已經顯示登錄頁面
第八步配置客戶端(即子系統)
我們以Tomcat下的jsp-examples與servlets-examples為單點登錄系統的子系統
打開兩個項目中的web.xml文件在第一個<filter>前面加上如下內容
?<!-- CAS test zy -->
?<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://localhost:8443/cas/login</param-value>
??</init-param>?
??<init-param>
???<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
??????????? <param-value>https://localhost:8443/cas/proxyValidate</param-value>
??</init-param>
??<init-param>
???<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
??????????? <param-value>localhost:8080</param-value>
??</init-param>
?</filter>
??? <filter-mapping>
??<filter-name>CASFilter</filter-name>
??<url-pattern>/*</url-pattern>
?</filter-mapping>
?<!-- CAS test End-->
如果這段代碼你無法看懂,請參閱其他資料
添加完后保存web.xml文件。然后拷貝cas-client-java-2.1.1/dist下的casclient.jar包進入兩個系統的lib目錄下
第九步建立登錄數據庫用戶表
打開MySql數據庫,我的數據庫用戶名及密碼是root/root。
建立新的數據庫test
建立用戶表users,有兩個字段username與password,主鍵為username
插入一條記錄用戶名密碼為:zy/zy
第十步配置數據庫文件
打開Tomcat下的cas項目,打開deployerConfigContext.xml文件
找到<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
這一行,然后注銷掉,緊跟著其下面,添加這樣一段代碼
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
????????? <property name="sql" value="select password from users where username=?" />
????????? <property name="dataSource" ref="dataSource" />
</bean>???
用來指定查詢的數據源,并指定查詢登錄用戶的語句
然后,添加一個新bean,上面我們指定的數據源為dataSource,現在就來定義這個數據源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
??????<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
??????<property name="url"><value>jdbc:mysql://localhost:3306/test</value></property>
??????<property name="username"><value>root</value></property>
??????<property name="password"><value>root</value></property>
?</bean>
這一步應該都是知道是什么意思,那么要注意的是它寫的位置。
deployerConfigContext.xml文件的root標簽是<beans>
所以數據源的這個新的<bean>應該寫在<beans>下,請認真思考這個部分,不然會報錯
如此,數據庫也配置完成了。
第十一步添加依賴包
依賴包都需要添加到tomcat的cas項目下,包括以下包:
cas-server-support-jdbc-3.1.1.jar,在cas-server-release.zip下的module文件夾里可以找到
mysql-connector-java-5.1.6-bin.jar,Mysql的驅動包
DataStore需要三個包
commons-collections-3.2.jar,commons-dbcp-1.2.1.jar,commons-pool-1.3.jar
這三個包可以在Apache網站下載,也可以在www.jarbao.com 中去搜索下載
包全部導入后即完成基本配置
第十二步測試使用
啟動tomcat,查看有無報錯,在無報錯的情況下。
http://localhost:8080 看是否出現三角貓
然后http://localhost:8080/jsp-examples 查看是否進入登錄頁面
暫時不登錄再進入http://localhost:8080/servlets-examples 查看是否也跳入登錄頁面
一切順利則說明,當進入這兩個子系統時,都會檢查是否有cookies票,如果沒有即表示沒有登錄,即進入登錄頁面。
接下來登錄,mysql數據庫用戶表users里的記錄是zy/zy,輸入用戶名密碼登錄
正常登入一個子系統,這時再按照上面進入另外一個子系統,則不需要再登錄。
如此,CAS的配置及使用正式告一段落。
?
新增一個子系統只需要兩步
將子系統的web.xml配置上我們前面配置過的內容
將casclient.jar包放入子系統的lib文件夾下即可
總結
以上是生活随笔為你收集整理的CAS Tomcat配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBoss下布署Spring2.5和St
- 下一篇: 全面掌握ISO8583报文协议