最近项目中需要做单点登录,客户端包含java和php,java有几个应用程序,php是discuz+supesite+ucenter,需
?
要这几个客户端都要能单点登录和登出,在网上找了许多相关资料,今天终于配置成功,步骤如下:
?
1、cas服务端:下载地址:http://downloads.jasig.org/cas/,cas的服务端和客户端有许多版本,最新版本和老版本
?
有很大的区别,目前服务端最新版本为:cas-server-3.4.4-release.zip
?
解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.war复制到
?
tomcat的webapps下,启动tomcat,访问:http://localhost:8080/cas/login 就可以看到登录界面了:
cas服务端默认采用的是 用户名=密码的验证,并且采用的是https验证,需要给tomact配置证书,本系统没有采用https验证,若采用https验证可参考:
?
http://blog.csdn.net/haydenwang8287/archive/2010/07/26/5765941.aspx。
?
1.1、若不采用https验证,服务器端需要配置
1、cas\WEB-INF\deployerConfigContext.xml
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient"/>
?
?增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不采用,加上去之后如下:
?
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
?p:httpClient-ref="httpClient"? p:requireSecure="false"/>
?
2、cas\WEB-INF\spring-configuration\
ticketGrantingTicketCookieGenerator.xml
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
????? p:cookieSecure="true"
????? p:cookieMaxAge="-1"
????? p:cookieName="CASTGC"
????? p:cookiePath="/cas" />
?
参数p:cookieSecure="true",同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。
参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。
?
1.2、服务器端退出访问:http://localhost:8080/cas/logout,
?
?