CAS單點登錄HTTP協議版本配置指南

[b]
[align=center]CAS單點登錄配置(HTTP協議版本)[/align]
[/b]

一、CAS版本:
服務端是cas-server-3.4.7。這裏不需要源代碼,解壓zip包中的cas-server-webapp-3.4.7.war出來即可。
客戶端是cas-client-3.2.0。這裏主要用到cas-client-core-3.2.0.jar包,當然在後面如果需要用到,可自行添加。Apache的日誌包這裏常用的包是需要的。

二、環境搭建
Tomcat6.x + JDK6.x
關於搭建基本環境,網上已經一大把:
官方WIKI:https://wiki.jasig.org/display/CASUM/Home
IBM技術社區:http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
ITeye技術社區:http://www.iteye.com/topic/544899
還有很多就不列舉了。
總體來說,使用Http協議的CAS比Https版本的步驟少了ssl的配置,然後在服務端需要修改部分配置文件即可。基本上的配置是大同小異的,下面就詳細記錄下來,日後參考。

三、部署配置
環境搭建完畢後,按下面的步驟,按部就班走完下面的步驟即可
1.CAS服務端配置。服務端主機名假定爲sso.ican.org。
(1).端口配置。我們不使用8443,直接使用80端口,這樣看上去舒服點。
進入部署CAS服務端的Tomcat的conf目錄下,配置service.xml即可,主要代碼如下:

[code="java"]...

...

...

...
[/code]

注意到這裏之際設置默認的主機是sso.ican.org了,另外我將下載下來的cas-server-webapp-3.4.7.war解壓到Eclipse中的一個工程中去了(G:/projects/sso.ican.org/web目錄下),同時把docBase指向該工程的目錄下,這樣可以隨時在IDE中修改配置文件,比用普通的文本編輯器編輯配置文件方便很多。
基本Tomcat的配置修改到此完成了。

2.配置CAS服務應用程序的配置文件
主要有WEB-INF有cas.properties、deployerConfigContext.xml以及WEB-INF子目錄spring-configuration下的ticketGrantingTicketCookieGenerator.xml、warnCookieGenerator.xml。修改這些文件後,就可以使用http協議以及80端口來訪問CAS登錄認證接口了。下面按順序列出主要的修改和說明:
cas.properties文件,把localhost替換爲正式的主機名sso.ican.org,以及去掉了8080端口和cas上下文目錄:

[code="java"]cas.securityContext.serviceProperties.service=http://sso.ican.org/services/j_acegi_cas_security_check
# Names of roles allowed to access the CAS service manager
cas.securityContext.serviceProperties.adminRoles=ROLE_ADMIN
cas.securityContext.casProcessingFilterEntryPoint.loginUrl=http://sso.ican.org/login
cas.securityContext.ticketValidator.casServerUrlPrefix=http://sso.ican.org

cas.themeResolver.defaultThemeName=cas-theme-default
cas.viewResolver.basename=default_views

host.name=cas

#database.hibernate.dialect=org.hibernate.dialect.OracleDialect
#database.hibernate.dialect=org.hibernate.dialect.MySQLDialect
database.hibernate.dialect=org.hibernate.dialect.HSQLDialect
[/code]

deployerConfigContext.xml文件,在前面添加了數據源與密碼編碼器Bean,這個在後面驗證用戶登錄信息時候會用到;同時替換原來user=password的簡單驗證bean;以及設置驗證不要求使用安全的https方式(p:requireSecure="false"):

[code="java"]...
oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@172.16.172.180:1521:developbase_gzdevelop

...


...
[/code]

ticketGrantingTicketCookieGenerator.xml文件中將cookie安全要求爲false,因爲我們用的是http協議而不是https協議

[code="java"][/code]


同樣warnCookieGenerator.xml文件中也設置cookie安全要求爲false,這樣,我們就完成了使用HTTP協議版本的CAS服務端了。


[code="java"]
[/code]


Web.xml不需要設置任何東西,使用現成的就可以了。

3.配置CAS客戶端,示例中的客戶端主機名師www.easycode.com,使用8080端口訪問。
CAS客戶端的配置主要就是一個web.xml文件:

[code="java"] CAS Single Sign Out Filterorg.jasig.cas.client.session.SingleSignOutFilterCAS Authentication Filterorg.jasig.cas.client.authentication.AuthenticationFiltercasServerLoginUrlhttp://sso.ican.org/loginserverNamehttp://www.easycode.com:8080CAS Validation Filterorg.jasig.cas.client.validation.Cas10TicketValidationFiltercasServerUrlPrefixhttp://sso.ican.orgserverNamehttp://www.easycode.com:8080CAS HttpServletRequest Wrapper Filterorg.jasig.cas.client.util.HttpServletRequestWrapperFilterCAS Assertion Thread Local Filterorg.jasig.cas.client.util.AssertionThreadLocalFilterCAS Single Sign Out Filter/*CAS Authentication Filter/servlets/*CAS Validation Filter/servlets/*CAS HttpServletRequest Wrapper Filter/servlets/*CAS Assertion Thread Local Filter/servlets/*org.jasig.cas.client.session.SingleSignOutHttpSessionListenerLogoutServletsso.iss.test.LogoutServletcasServerLogoutUrlhttp://sso.ican.org/logout
[/code]

詳細配置可以參考這裏:
https://wiki.jasig.org/display/CASUM/End-to-end+Windows+Example
我從Tomcat的示例程序中copy了servlet的例子到客戶端程序中,也就是servlets目錄的資源是需要登錄才能訪問的。


編寫一些示例頁面index.html,方便測試。爲了驗證當點登出,同時配置另外一個CAS客戶端download.easycode.com。詳細見附件。sso.ican.org的包太大,按照文檔下載CAS的程序解壓下來然後按上面的步驟修改即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章