![集成框架中使用CAS實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/468443b0-f599-4d53-8578-df9b80909841/468443b0-f599-4d53-8578-df9b809098411.gif)
![集成框架中使用CAS實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/468443b0-f599-4d53-8578-df9b80909841/468443b0-f599-4d53-8578-df9b809098412.gif)
![集成框架中使用CAS實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/468443b0-f599-4d53-8578-df9b80909841/468443b0-f599-4d53-8578-df9b809098413.gif)
![集成框架中使用CAS實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/468443b0-f599-4d53-8578-df9b80909841/468443b0-f599-4d53-8578-df9b809098414.gif)
![集成框架中使用CAS實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/468443b0-f599-4d53-8578-df9b80909841/468443b0-f599-4d53-8578-df9b809098415.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、集成框架中使用 CAS 實(shí)現(xiàn)單點(diǎn)登錄技術(shù)方案1、2、3、4、文檔摘要 1.1 文檔分類 1.2 關(guān)鍵字 1.3使用SSO的最終目的 1.4 摘要 1.5 參考 1.5 修改歷史 技術(shù)方案 2.1 問題或場(chǎng)景 22 web SSO的原理 2.3 CAS的基本原理2.4 CAS 協(xié)議2.5 配置一個(gè)基本的 CAS 2.5.1 準(zhǔn)備工作 2.5.2配置CAS服務(wù)器2.5.3配置jboss服務(wù)器使用https協(xié)議2.5.4 配己置cas客戶端2.5.5測(cè)試 SSO 2.6 擴(kuò)展認(rèn)證接口及與數(shù)據(jù)庫結(jié)合驗(yàn)證 2.6.1 如何做擴(kuò)展部署 2.6.2如何獲取登錄的用戶名 問題或不足 改進(jìn)意見 附件 .3.3.
2、.......2.1.5、1、文檔摘要1.1 文檔分類技術(shù)方案 -關(guān)于單點(diǎn)登錄1.2 關(guān)鍵字SSO、Yale CAS1.3 使用 SSO 的最終目的1、實(shí)現(xiàn)一個(gè)易用的、能跨不同 Web 應(yīng)用的單點(diǎn)登錄認(rèn)證中心;2、實(shí)現(xiàn)統(tǒng)一的用戶身份和密鑰管理,減少多套密碼系統(tǒng)造成的管理成本和安全漏洞;3、降低認(rèn)證模塊在 IT 系統(tǒng)設(shè)計(jì)中的耦合度,提供更好的 SOA 設(shè)計(jì)和更彈性的安全策略1.4 摘要本文描述如何實(shí)現(xiàn)多應(yīng)用系統(tǒng)下的單點(diǎn)登錄具體實(shí)現(xiàn)方案1.5 參考Yale CAS網(wǎng)站(http:/www.yale.e
3、du/tp/cas/)及網(wǎng)絡(luò)相關(guān)技術(shù)文檔1.5修改歷史日期版本作者修改內(nèi)容評(píng)審號(hào)更改請(qǐng)求號(hào)2008-6-181.0許建飛創(chuàng)建2、技術(shù)方案 2.1 問題或場(chǎng)景假設(shè)目前有多個(gè) WEB 應(yīng)用系統(tǒng),采用不同的語言開發(fā),部署在 不同的服務(wù)器上;每個(gè)系統(tǒng)分別管理著自己的用戶。那么,客戶在使 用不同系統(tǒng)時(shí)就必須在不同的系統(tǒng)之間切換, 反復(fù)的輸入不同的用戶 名和密碼。在系統(tǒng)集成時(shí)如何使用戶只需要認(rèn)證一次就能登入各個(gè)不 同的系統(tǒng)?那么就必須采用用戶身份集中管理、 統(tǒng)一認(rèn)證, 這就涉及 到單點(diǎn)登錄(single sign-on SSO的問題了。2.2 web SSO 的原理Web SSO主要特點(diǎn)是,SSO應(yīng)用之間
4、走 Web協(xié)議(女口 HTTP /SSL) ,并且 SSO 都只有一個(gè)登錄入口。 j簡(jiǎn)單的 SSO 的體系中,會(huì)有下面三種角色:1 User (多個(gè))2 Web 應(yīng)用(多個(gè))3 SSO 認(rèn)證中心( 1 個(gè))雖然 SSO 實(shí)現(xiàn)模式千奇百怪,但萬變不離其宗:1、Web 應(yīng)用不處理 User 的登錄,否則就是多點(diǎn)登陸了,所 有的登錄都在 SSO 認(rèn)證中心進(jìn)行。2、SSO 認(rèn)證中心通過一些方法來告訴 Web 應(yīng)用當(dāng)前訪問用戶究竟是不是張三 / 李四3、SSO 認(rèn)證中心和所有的 Web 應(yīng)用建立一種信任關(guān)系, S SO 認(rèn)證中心對(duì)用戶身份正確性的判斷會(huì)通過某種方法告之 Web 應(yīng) 用,而且判斷結(jié)果必須被
5、 Web 應(yīng)用信任。2.3 CAS 的基本原理從結(jié)構(gòu)體系看, CAS 包含兩部分:CAS ServerCAS Server 負(fù)責(zé)完成對(duì)用戶的認(rèn)證工作, CAS Server 需要獨(dú) 立部署,有不止一種 CAS Server的實(shí)現(xiàn), Yale CAS Server和ESUP CAS Server都是很不錯(cuò)的選擇。CAS Server會(huì)處理用戶名/密碼等憑證(Credentials),它可 能會(huì)到數(shù)據(jù)庫檢索一條用戶帳號(hào)信息, 也可能在 XML 文件中檢索用 戶密碼,對(duì)這種方式, CAS 均提供一種靈活但同一的接口 / 實(shí)現(xiàn) 分離的方式, CAS 究竟是用何種認(rèn)證方式, 跟 CAS 協(xié)議是分離的,
6、也就是,這個(gè)認(rèn)證的實(shí)現(xiàn)細(xì)節(jié)可以自己定制和擴(kuò)展。CAS ClientCAS Client 負(fù)責(zé)部署在客戶端(注意,我是指 Web 應(yīng)用), 原則上, CAS Client 的部署意味著,當(dāng)有對(duì)本地 Web 應(yīng)用的受保 護(hù)資源的訪問請(qǐng)求,并且需要對(duì)請(qǐng)求方進(jìn)行身份認(rèn)證, Web 應(yīng)用不 再接受任何的用戶名密碼等類似的 Credentials ,而是重定向到 CAS Server 進(jìn)行認(rèn)證。目前,CAS Clie nt支持(某些在完善中)非常多的客戶端,包括 Java、.Net、ISAPI、Php、Perl、uPortal、Acegi、Ruby、VBScript等客戶端,幾乎可以這樣說,CAS協(xié)議能夠
7、適合任何語言編寫的客戶端應(yīng)用。2.4 CAS協(xié)議CAS Clie nt與受保護(hù)的客戶端應(yīng)用部署在一起,以 Filter方 式保護(hù)受保護(hù)的資源。對(duì)于訪問受保護(hù)資源的每個(gè) Web請(qǐng)求,CAS Client會(huì)分析該請(qǐng)求的 Http請(qǐng)求中是否包含 Service Ticket,如果 沒有,則說明當(dāng)前用戶尚未登錄,于是將請(qǐng)求重定向到指定好的CAS Server登錄地址,并傳遞 Service (也就是要訪問的目的資源 地址),以便登錄成功過后轉(zhuǎn)回該地址。用戶在第3步中輸入認(rèn)證信息,如果登錄成功,CAS Server隨機(jī)產(chǎn)生一個(gè)相當(dāng)長度、唯一、 不可偽造的Service Ticket并緩存以待將來驗(yàn)證,之
8、后系統(tǒng)自動(dòng)重 定向到 Service 所在地址,并為客戶端瀏覽器設(shè)置一個(gè) Ticket Granted Cookie( TGC ), CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過后,在第 5,6 步中與 CAS Server 進(jìn)行身份合適,以確保 Service Ticket 的合法性。在該協(xié)議中,所有與 CAS 的交互均采用 SSL 協(xié)議,確保, ST 和 TGC 的安全性。 協(xié)議工作過程中會(huì)有 2 次重定向的過程, 但 是 CAS Client 與 CAS Server 之間進(jìn)行 Ticket 驗(yàn)證的過程對(duì)于用戶 是透明的。另外, CAS 協(xié)議中還提供了 Pr
9、oxy (代理)模式,以適應(yīng)更 加高級(jí)、復(fù)雜的應(yīng)用場(chǎng)景2.5 配置一個(gè)基本的 CAS2.5.1 準(zhǔn)備工作下 載 測(cè) 試 用 的 web 應(yīng) 用 服 務(wù) 器 apache-tomcat-6.0.16, jboss-4.2.2.GA;下載 cas-server-3.2.1-relea、secas-client-2.0.11.zi;p 本文通過以上版本舉例說明。2.5.2 配置 CAS 服務(wù)器假設(shè)將CAS server端部署在jboss下,其他幾個(gè)客戶端應(yīng)用系統(tǒng)分別在 tomcat或者jboss下。由于CAS使用Https協(xié)議,所以首先要知道如何在jboss容器 中配置SSL.; CAS勺客戶端以一
10、個(gè) Web應(yīng)用的Filter運(yùn)行。當(dāng)Web應(yīng) 用的某個(gè)功能被請(qǐng)求時(shí),F(xiàn)ilter就會(huì)攔截應(yīng)用的URL,從而迫使用戶 到CAS服務(wù)器進(jìn)行登陸。在所有不同的 Web應(yīng)用中,使用同一個(gè)CAS 服務(wù)器進(jìn)行登陸,即可達(dá)到單點(diǎn)登陸之目的。將 cas-server-321-release.Zp壓,找至U cas-server-321-release/cas -server-3.2.1/modules/cas-server-webapp-3.2.1.wa繼續(xù)解壓它。加解壓 后的文件夾cas-server-webapp-3.2改名為cas.war為了發(fā)布到j(luò)boss下 方便,tomcat下直接用這個(gè)war壓縮包
11、就行了),啟動(dòng)jboss服務(wù),測(cè) 試CAS服務(wù)器是否發(fā)布正常,可以訪問http:/localhost:8080/cas/login出現(xiàn)登陸窗口。輸入用戶名密碼(用戶名=密碼),出現(xiàn)登陸成功 頁面說明發(fā)布正常。2.5.3 配置 jboss 服務(wù)器使用 https 協(xié)議1、使用Java自帶的keytool命令,產(chǎn)生SERVER的證書D:"> keytool -genkey -alias my-alias-name-keyalg RSA -keystore keystore-file其中my-alias-name為別名,這行命令的作用是產(chǎn)生一個(gè)新的公共 / 私有鑰匙對(duì)。 keysto
12、re-file 為存儲(chǔ)鑰匙和證書的文件。 命令運(yùn)行后,根據(jù)提示回答。注意在開始問“你的名字”或“ DName”的時(shí)候,必須填寫你服務(wù)器所在域名(在局域網(wǎng)中測(cè)試時(shí), 使用主機(jī)名或hosts文件中注冊(cè)的域名,本機(jī)可以使用localhost)。2、到這個(gè)目錄下去找server.xml文件打開,相應(yīng)位置更改如下:<Co nn ector port="8443" protocol="HTTP/1.1" SSLE nabled="true" maxThreads="150" scheme="https"
13、; secure="true" clie ntAuth="false"sslProtocol="TLS"keystoreFile="D:/keystore-file"keystorePass="*" />其中,keystoreFile使用絕對(duì)路徑或相對(duì)路徑(如$jboss.server.home.dir/.), keystorePas為第 3 點(diǎn)輸入的 keystore 密碼。3、配置完成后,啟動(dòng)就jboss訪問https:/localhost:8443,訪 問成功說明SSL配置成功。也可
14、以訪問https:/localhost:8443/cas/login2.5.4配置cas客戶端以Tomcat中自帶的examples應(yīng)用為例,在 Web應(yīng)用中使用配 置CAS客戶端。1、在examples應(yīng)用里配置 CAS客戶端,需修改 examples/WEB-INF/web.xml,在 web.xml文件中,加入如下 Filter 配置<filter>vfilter- name>CAS Filter</filter- name<filter-class>edu.yale.its.tp.cas.clie nt.filter.CASFilter</fi
15、lter-class><i nit-param>vparam-n ame>edu.yale.its.tp.cas.clie nt.filter.logi nU rl</param-n ame><param-value>https:/localhost:8443/cas/log in</param-value></in it-param><i nit-param>vparam-n ame>edu.yale.its.tp.cas.clie nt.filter.validateUrl</param-n a
16、me><param-value>https:/localhost:8443/cas/serviceValidate</param-value></in it-param><i nit-param>vparam-n ame>edu.yale.its.tp.cas.clie nt.filter.serverName</param-n ame> <param-value>localhost:8080</param-value></in it-param>v/filter>vfilter-
17、mapp ing>vfilter- name>CAS Filterv/filter- namevurl-patter n> /*v/url-patter n>v/filter-mappi ng>其中,第一,二個(gè)localhost都改成CAS服務(wù)器域名或主機(jī)名, 第三個(gè)改成你servelt example應(yīng)用域名或主機(jī)名,由于本文中CAS服務(wù)器與客戶端在同一主機(jī)同一Tomcat上,所以都為localhost若不在同一主機(jī),則分別使用兩主機(jī)的域名或主機(jī)名。詳細(xì)說明如下:表格1. CASFilter必需的參數(shù)參數(shù)名作用edu.yale.its.tp.cas.client
18、.filter.loginUrl指定CAS提供登錄頁面的 URLedu.yale.its.tp.cas.client.filter.validateUrl指定 CAS 提供 service ticket 或 proxy ticket 證服務(wù)的URL驗(yàn)edu.yale.its.tp.cas.client.filter.serverName指定客戶端的域名和端口,是指客戶端應(yīng)用所在機(jī)器而不是CAS Server 所在機(jī)器,該參數(shù)或serviceUrl少有一個(gè)必須指定至edu.yale.its.tp.cas.client.filter.serviceUrl該參數(shù)指定過后將覆蓋serverName參數(shù)
19、,成為登錄成功過后重定向的目的地址參數(shù)名作用xyCallbackUrl用于當(dāng)前應(yīng)用需要作為其他服務(wù)的代理(proxy)時(shí)獲取 Proxy Granting Ticket的地址edu.yale.its.tp.cas.client.filter.authorizedProxy用于允許當(dāng)前應(yīng)用從代理處獲取proxy tickets ,該參數(shù)接受以空格分隔開的多個(gè)proxy URLs ,但實(shí)際使用只需要一個(gè)成功即可。當(dāng)指定該參數(shù)過后,需要修改validateUrl 至U proxyValidate ,而不再是 serviceVa
20、lidateedu.yale.its.tp.cas.client.filter.renew如果指定為true,那么受保護(hù)的資源每次被訪問 時(shí)均要求用戶重新進(jìn)行驗(yàn)證,而不管之前是否已經(jīng)通過edu.yale.its.tp.cas.client.filter.wrapRequest如果指定為 true,那么CASFilter 將重新包裝HttpRequest,并且使 getRemoteUser()方法返回當(dāng)前登錄用戶的用戶名edu.yale.its.tp.cas.client.filter.gateway指定gateway 屬性2、將 cas-client20.11.zip解壓,把 java/lib
21、/casclient.jar 拷貝到 Tomcat 的 webapps/ examples/WEB-INF/lib 目錄下(如果沒有就建一 個(gè))3、執(zhí)行命令行,導(dǎo)出SERVER的證書,用來給所有需要用到 的客戶端導(dǎo)入D:"> keytool -export -file myserver.cert-alias my-alias-name-ke ystore keystore-file4、執(zhí)行命令行,在客戶端的JVM里導(dǎo)入信任的SERVER的證書,(假設(shè)你的另外一個(gè)應(yīng)用系統(tǒng)也是用的java,這一步是必須的,否則不能建立兩者之間的信任關(guān)系。如果不執(zhí)行下面的命令行,比如在.net環(huán)境下
22、可以考慮將生成的myserver.ce作為IE的證書倒入瀏覽 器看看,需要再試一下)D:"> keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert-alias my-alias-name其中,$JAVA_HOME改成JDK的絕對(duì)路徑。路徑當(dāng)中如果有 空格用雙引號(hào)括起來。輸入 keystore密碼時(shí),注意現(xiàn)在的 keystore為cacerts 而 cacer ts的初密碼為changeit而不是前面keystore-file的密碼,所以要是沒 有改過cacerts密碼應(yīng)
23、該輸入changeit.2.5.5 測(cè)試 SSO啟動(dòng) Tomcat禾口 jboss,訪問 http:/localhost:8080/servlets-examples/,隨便執(zhí)行一個(gè)servlet,系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)到一個(gè)驗(yàn)證頁面,隨便 輸入一個(gè)相同的賬號(hào) ,密碼,認(rèn)證通過之后,就會(huì)訪問到你點(diǎn)擊的servlet 了。2.6 擴(kuò)展認(rèn)證接口及與數(shù)據(jù)庫結(jié)合驗(yàn)證CAS Server 負(fù)責(zé)完成對(duì)用戶的認(rèn)證工作,它會(huì)處理登錄時(shí)的用戶憑證(Credentials)信息,用戶名/密碼對(duì)是最常見的憑證信息。C AS Server 可能需要到數(shù)據(jù)庫檢索一條用戶帳號(hào)信息,也可能在 XM L 文件中檢索用戶名 / 密碼,
24、還可能通過 LDAP Server 獲取等,在這 種情況下, CAS 提供了一種靈活但統(tǒng)一的接口和實(shí)現(xiàn)分離的方式, 實(shí)際使用中 CAS 采用哪種方式認(rèn)證是與 CAS 的基本協(xié)議分離開 的,用戶可以根據(jù)認(rèn)證的接口去定制和擴(kuò)展。261如何做擴(kuò)展部署擴(kuò)展 AuthenticationHandlerCAS提供擴(kuò)展認(rèn)證的核心是Authe nticatio nHan dler接口,具體可查閱源碼,看下面一段demo代碼,擴(kuò)展認(rèn)證方法1. public class Usern ameLe ngthAuth nHan dler2. exte nds AbstractUsernamePasswordAuthe
25、nticatio nHan dler 3. protected boolea n authe nticateUser namePassword Intern al( Usern amePasswordCrede n tials crede ntials) throws Authe nticati on Excepti on 4. /*5. *這里我們完全可以用自己的認(rèn)證邏輯代替,比如將用戶名/密碼傳入一個(gè)SQL語句,向數(shù)據(jù)庫驗(yàn)證是否有對(duì)應(yīng)的用戶賬號(hào),只需要將下面的程序替換掉就OK了!6. /7. Stri ng user name = crede ntials.getUser name();8
26、. String password = crede ntials.getPassword();9. String correctPassword = In teger.toStri ng(user nameen gth();10. retur n correctPassword.equals(password);11. 完了記得在 deployerConfigContext.xm中把這個(gè) bean注冊(cè)一下,就可用了。另外,查看該xml文件發(fā)現(xiàn)注冊(cè)bean時(shí)是一個(gè)list,如下:<list><bea nclass="org.jasig.cas.authe nticat
27、i on .han dler.support.HttpBasedServiceCrede ntialsAuthe nticatio nHan dler" p:httpClie nt-ref="httpClie nt" /><!下面就是系統(tǒng)默認(rèn)的驗(yàn)證器配置,你可以替換它,或者增加一個(gè)新的ha ndler -><bea nclass="org.jasig.cas.authe nticati on .han dler.support.SimpleTestUsern amePasswordAuthe nticati onHan dler&
28、quot; /></list>在這個(gè)list中可以配置多個(gè) AuthenticationHandlers這些AuthenticationHandlers形成了一個(gè)驗(yàn)證器鏈,所有提交給CAS的Credentials 信息將通過這個(gè)驗(yàn)證器鏈的鏈?zhǔn)竭^濾,只要這鏈中有一個(gè)驗(yàn)證器通 過了對(duì)Credentials的驗(yàn)證,就認(rèn)為這個(gè) Credentials是合法的。這樣的 設(shè)計(jì)使得我們可以很輕松的整合不同驗(yàn)證體系的已有應(yīng)用到同一個(gè)CAS上,比如:A驗(yàn)證器負(fù)責(zé)校驗(yàn)alpha系統(tǒng)提交的Credentials它是 基于LDAP服務(wù)器的;B驗(yàn)證器負(fù)責(zé)校驗(yàn)beta系統(tǒng)提交的Credentials 它
29、是一個(gè)傳統(tǒng)的RDB用戶表認(rèn)證;C驗(yàn)證器負(fù)責(zé)校驗(yàn)gamma系統(tǒng)提 交的基于RSA證書加密的Credentials 3種完全不同的用戶身份認(rèn)證 通過配置就可以統(tǒng)一在同一個(gè) CAS服務(wù)內(nèi)JDBC 認(rèn)證方法用戶的認(rèn)證信息通常保存在數(shù)據(jù)庫中, 因此本文就選用這種情況來介紹。將前面下載的 cas-server-3.1.1-release.z包解開后,在 m odules 目錄下可以找到包 cas-server-support-jdbc-3.1.1.ja其提供了通 過JDBC連接數(shù)據(jù)庫進(jìn)行驗(yàn)證的缺省實(shí)現(xiàn),基于該包的支持,我們 只需要做一些配置工作即可實(shí)現(xiàn) JDBC 認(rèn)證。JDBC 認(rèn)證方法支持多種數(shù)據(jù)庫,
30、DB2, Oracle, MySql, Micros oft SQL Server 等均可,這里以 oracle10 作為例子介紹。 并且假設(shè) o racle SID為:mytest,數(shù)據(jù)庫登錄用戶名:mytest,數(shù)據(jù)庫登錄密碼:oracle,用戶信息表為:app_use,該表包含用戶名和密碼的兩 個(gè)數(shù)據(jù)項(xiàng)分別為 userName和password如下:我們測(cè)試使用的是oracle數(shù)據(jù)庫,可以選用任何一個(gè)支持 JDBC 的數(shù)據(jù)庫。用scott/tiger登陸sqlplus輸入如下語句創(chuàng)建用戶表和輸入 測(cè)試數(shù)據(jù):create table app_user(user name varchar(I
31、OO), password varchar(1insert into app_user values('tomcat', 'tomcat'); insert into app_user values('cas', 'cas');commit;打開 deployerConfigContext.xm文件,開始配置1. 配置 DataStore<!-add配置數(shù)據(jù)庫聯(lián)接-><bea nid="dataSource"class="org.spri ngframework.jdbc.datas
32、ource.DriverMa nagerDataSource" destroy-method="close"><propertyn ame="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></prope rty><propertyname="url"><value>jdbc:oracle:thi n: :1521:mytest</value>
33、;</property><property n ame="user name"><value>mytest</value></property><property n ame="password"><value>oracle</value></property></bea n><!-add en d->2. 配置 AuthenticationHandler在 cas-server-support-jdbc-3.1.1.ja包
34、中,提供了 3 個(gè)基于JDBC 的 AuthenticationHandler,分別為 BindModeSearchDat abaseAuthe nticati onHan dlerQueryDatabaseAuthe nticati onHan dle r, SearchModeSearchDatabaseAuthe nticatio nHan dle其 中 Bi nd ModeSearchDatabaseAuthe nticatio nHan dler 是用所給的用戶名 和密碼去建立數(shù)據(jù)庫連接,根據(jù)連接建立是否成功來判斷驗(yàn)證 成功與否;QueryDatabaseAuthentication
35、Handle通過配置一個(gè) SQL語句查出密碼,與所給密碼匹配;SearchModeSearchDatabaseAuthe nticatio nHa ndler通過配置存放用戶驗(yàn)證信息的表、用戶名字段和密碼字段,構(gòu)造查詢語句來驗(yàn)證。使用哪個(gè) AuthenticationHandler,需要在 deployerConfigC on text.xml中設(shè)置,默認(rèn)情況下,CAS使用一個(gè)簡(jiǎn)單的usern ame二password 的 AuthenticationHandler(就是第 2.5 章節(jié)所談 到的配置),在文件中可以找到如下一行:vbean class二"org.jasig.cas.
36、authe nticatio n.ha ndler.support.SimpleTestUser namePasswor d AuthenticationHandler" />,我們可以將其注釋掉,換成我們 希望的一個(gè) AuthenticationHandler,比如,使用 QueryDatabase AuthenticationHandler 或 SearchModeSearchDatabaseAuthenticationHan dler可以分別選取下面兩個(gè)清單的配置使用 QueryDatabaseAuthenticationHandlervbean class="
37、org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> vproperty name="sql" value="select password from app_user where username=?" />vproperty name="dataSource" ref="dataSource" /><bean>使用 SearchModeSearchDatabaseAuthenticationHan
38、dler<bean id="SearchModeSearchDatabaseAuthenticationHandler"class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"Iabstract="false" singleton="true" lazy-init="default"Iautowire="default" dependency-check="
39、;default">I I <property name二"tableUsers">I ; <value> app_user </value> </property>i i <property name="fieldUser">iI <value>userName</value>I </property>i<property name=''fieldPassword">I <value>pass
40、word</value>i ; </property>1 <property name="dataSource" ref=" casDataSource " />i i </bean>另外,由于存放在數(shù)據(jù)庫中的密碼通常是加密過的,所以Authe nticatio nHan dler在匹配時(shí)需要知道使用的加密方法,在deployerCo nfigCon text.xml文件中我們可以為具體的Authe nticatio nHan dler類配置一個(gè) property,指定加密器類,比如對(duì)于QueryDatab
41、aseAuthenticationHandler,可以修改所示:添力口 passwordEncoder<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"><property name="dataSource" ref=" casDataSource " /><property name="sql"value="select password from app user whe
42、re lower(userName) = lower"/><property n ame="passwordE ncoder" ref="myPasswordE ncoder"/></bea n>其中myPasswordEncoder是對(duì)如下清單中設(shè)置的實(shí)際加密器類的引用:指定具體加密器類<bean id=" myPasswordEncoder "class="org.jasig.cas.authe nticati on .ha ndler.MyPasswordE ncoder"/這里MyPasswordEncoder是根據(jù)實(shí)際情況自己定義的加密器,實(shí)現(xiàn)PasswordEncoder接口及其 encode()方法。熟悉spring的人應(yīng)該相當(dāng)對(duì)上面的配置感到很親切,因?yàn)镃AS3也已經(jīng)aop,配置都是基于SPRING的方式。4、部署依賴包在以上配置完成以后,需要拷貝幾個(gè)依
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)動(dòng)療法第十章Brunnstrom技術(shù)講解
- 財(cái)政學(xué):第七章 教育
- 2025北京市商品房預(yù)售合同(合同版本)
- 2025二手房購房合同協(xié)議
- 擴(kuò)大勞務(wù)分包的合同范本
- 2025購車合同樣例范本資料
- 2024年城市建設(shè)項(xiàng)目承包合同
- 全新陽光房合同下載
- 紗窗合同協(xié)議書
- 生產(chǎn)原料購銷合同范本
- 2024年江西銅業(yè)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《鋁及鋁合金產(chǎn)品殘余應(yīng)力評(píng)價(jià)方法》
- IATF-16949:2016質(zhì)量管理體系培訓(xùn)講義
- 記賬憑證封面直接打印模板
- 人教版八年級(jí)美術(shù)下冊(cè)全冊(cè)完整課件
- 北京房地產(chǎn)典當(dāng)合同
- 安慶匯辰藥業(yè)有限公司高端原料藥、醫(yī)藥中間體建設(shè)項(xiàng)目環(huán)境影響報(bào)告書
- 檔案工作管理情況自查表
- 初中英語人教版 八年級(jí)上冊(cè) 單詞默寫表 漢譯英
- pcs-9611d-x說明書國內(nèi)中文標(biāo)準(zhǔn)版
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論