cas單點(diǎn)登錄配置速成
服務(wù)端配置
cas是個(gè)好東西,很靈活很好用,但是配置起來(lái)很麻煩,網(wǎng)上資料比較零碎。不弄個(gè)三五天根本不知道其中的原理,終于在多天的奮斗中配置成功,現(xiàn)在將配置的一些過(guò)程記錄下來(lái)供大家參考。
cas官方網(wǎng)站
http://www.jasig.org/cas
下載最新的服務(wù)端 CAS Server 3.3.3 Final
解壓后將modules下面的cas-server-webapp-3.3.3.war部署到web服務(wù)器,作為單點(diǎn)登錄的服務(wù)器。
登錄的服務(wù)器下面很多配置文件,通過(guò)配置可以做一些擴(kuò)展。
修改點(diǎn)1:驗(yàn)證方式使用我們自己的用戶表驗(yàn)證
cas和當(dāng)前已有的系統(tǒng)做集成的入口
1.修改deployerConfigContext.xml文件
添加數(shù)據(jù)源配置
XML/HTML代碼














定義MD5的加密方式
XML/HTML代碼




配置authenticationManager下面的authenticationHandlers屬性
XML/HTML代碼





修改點(diǎn)2:獲取用戶信息保存,方便各個(gè)客戶端可以統(tǒng)一得到用戶信息
1.定義attributeRepository,通過(guò)jdbc查詢用戶的詳細(xì)信息,可以把用戶表或用戶的所屬組織機(jī)構(gòu)或角色等查詢出來(lái)。
XML/HTML代碼
























2.配置authenticationManager中credentialsToPrincipalResolvers屬性
XML/HTML代碼




注意:默認(rèn)cas登錄服務(wù)器沒(méi)有把用戶信息傳到客戶端中,所以要修改WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,增加
XML/HTML代碼











修改點(diǎn)3:用數(shù)據(jù)庫(kù)來(lái)保存登錄的會(huì)話
這樣服務(wù)器在重新啟動(dòng)的時(shí)候不會(huì)丟失會(huì)話。
1.修改ticketRegistry.xml文件
將默認(rèn)的ticketRegistry改成
XML/HTML代碼

































配置完之后還需要一些jar的支持,根據(jù)提示那些包缺少到網(wǎng)上找。
修改點(diǎn)4:配置remenber me的功能,可以讓客戶端永久保存session
1.修改deployerConfigContext.xml文件
authenticationManager增加authenticationMetaDataPopulators屬性
XML/HTML代碼






2.修改cas-servlet.xml
修改authenticationViaFormAction配置變成
XML/HTML代碼







增加UsernamePasswordCredentialsValidator
XML/HTML代碼


修改ticketExpirationPolicies.xml,grantingTicketExpirationPolicy配置如下,注意時(shí)間要加大,不然session很容易過(guò)期,達(dá)不到remember me的效果。
XML/HTML代碼













修改點(diǎn)5:取消https驗(yàn)證
在網(wǎng)絡(luò)安全性較好,對(duì)系統(tǒng)安全沒(méi)有那么高的情況下可以取消https驗(yàn)證,使系統(tǒng)更加容易部署。
1.修改ticketGrantingTicketCookieGenerator.xml
XML/HTML代碼






p:cookieSecure改成false,客戶端web.xml中單獨(dú)服務(wù)器的鏈接改成http
使用https協(xié)議的配置
1.證書生成和導(dǎo)入
下面是一個(gè)生成證書和導(dǎo)入證書的bat腳本,如果web應(yīng)用和單獨(dú)登錄服務(wù)器部署在同一臺(tái)機(jī)可以一起執(zhí)行
C++代碼































3.將.keystore文件拷貝到tomcat的conf目錄下面,注意.keystore會(huì)在證書生成的時(shí)候生成到系統(tǒng)的用戶文件夾中,如windows會(huì)生產(chǎn)到C:\Documents and Settings\[yourusername]\下面
2.配置tomcat,把https協(xié)議的8443端口打開(kāi),指定證書的位置。
XML/HTML代碼







客戶端配置
cas官方網(wǎng)站上面的客戶端下載地址比較隱秘,沒(méi)有完全公開(kāi),具體地址為
http://www.ja-sig.org/downloads/cas-clients/
下載最新的cas-client-3.1.6-release.zip
1.解壓后把modules下面的包放到我們的web應(yīng)用中
2.配置web.xml,注意encodingFilter要提前配置,不然會(huì)出現(xiàn)數(shù)據(jù)插入數(shù)據(jù)庫(kù)的時(shí)候有亂碼。
serverName是我們web應(yīng)用的地址和端口
XML/HTML代碼




































































































































3.導(dǎo)入證書,如果不用https的話,這步可以跳過(guò),把tomcatsso.crt證書拷貝到c盤下面,在jdk的bin目錄下面運(yùn)行下面的語(yǔ)句。
JavaScript代碼







客戶端獲取登錄用戶名和用戶信息實(shí)例
Java代碼




posted on 2009-10-20 23:58 paulwong 閱讀(4602) 評(píng)論(6) 編輯 收藏 所屬分類: J2EE