cas-server-webapp-4.0.0.war 是要部署在认证服务器的项目,默认只支持https,经过如下步骤 可以使得cas支持普通的http请求
- 修改 /WEB-INF/deployerConfigContext.xml
<bean class="org.jasig.cas.authentication.handler.support
.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" p:requireSecure="false"/>
增加参数 p:requireSecure="false"
,是否需要安全验证,即HTTPS,false为不采用
- 修改 /WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
<bean id="ticketGrantingTicketCookieGenerator"
class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
参数p:cookieSecure="true"
,TRUE为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。
参数p:cookieMaxAge="-1"
,简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。
- 修改 /WEB-INF/spring-configuration/warnCookieGenerator.xml
<bean id="warnCookieGenerator"
class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="true"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
更改 cookieSecure="true"
注意:即使更改ok后,cas的页面还是提示不安全请求不能使用,这个不用考虑,cas登录界面可以换成自定义的
测试时: 用户名密码为 admin:admin, 默认的认证策略时用户名密码相同就通过验证
下载列表: http://downloads.jasig.org/cas/ 我用的版本是 cas-server-3.5.2.1-release.tar.gz, 4.0各种问题
文档wiki: https://wiki.jasig.org/display/CASUM/Building+and+Deploying http://jasig.github.io/cas/4.0.0/index.html
我的测试地址: cas.selfcloud.info:8080
cas退出问题