将CAS的HTTPS认证方式改为HTTP
2014-06-12 13:06
465 查看
一、CAS Server端的修改
1、找到cas\WEB-INF\deployerConfigContext.xml
对以下Bean增加参数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="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
参数p:cookieSecure="true",同理为HTTPS验证相关,true为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。
参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。
3、找到cas\WEB-INF\spring-configuration\warnCookieGenerator.xml
<bean
id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
两个参数与上面同理。应保持一致。
二、CAS Client端的修改
找到客户端使用的casclient.jar文件,借用反编译工具将相应的class文件反编译成java文件再进行下面的修改
1、找到edu.yale.its.tp.cas.client.filter.edu.yale.its.tp.cas.client.filter
Java代码
if (! casValidate.startsWith("https://")){
throw new ServletException("validateUrl must start with https://, its current value is [" + casValidate + "]");
}
if (casServiceUrl != null){
if (! (casServiceUrl.startsWith("https://")|| (casServiceUrl.startsWith("http://") ))){
throw new ServletException("service URL must start with http:// or https://; its current value is [" + casServiceUrl + "]");
}
}
把这两段内容注释掉(此目录下涉及修改的类文件有CASFilter.java、CASValidateFilter.java,其实所有的修改就是把与https有关的内容加以注释)
2、找到edu.yale.its.tp.cas.util.SecureURL
Java代码
if (!u.getProtocol().equals("https")){
// IOException may not be the best exception we could throw here
// since the problem is with the URL argument we were passed, not
// IO. -awp9
log.error("retrieve(" + url + ") on an illegal URL since protocol was not https.");
throw new IOException("only 'https' URLs are valid for this method");
}
把这段内容注释掉
1、找到cas\WEB-INF\deployerConfigContext.xml
对以下Bean增加参数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="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
参数p:cookieSecure="true",同理为HTTPS验证相关,true为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。
参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。
3、找到cas\WEB-INF\spring-configuration\warnCookieGenerator.xml
<bean
id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
两个参数与上面同理。应保持一致。
二、CAS Client端的修改
找到客户端使用的casclient.jar文件,借用反编译工具将相应的class文件反编译成java文件再进行下面的修改
1、找到edu.yale.its.tp.cas.client.filter.edu.yale.its.tp.cas.client.filter
Java代码
if (! casValidate.startsWith("https://")){
throw new ServletException("validateUrl must start with https://, its current value is [" + casValidate + "]");
}
if (casServiceUrl != null){
if (! (casServiceUrl.startsWith("https://")|| (casServiceUrl.startsWith("http://") ))){
throw new ServletException("service URL must start with http:// or https://; its current value is [" + casServiceUrl + "]");
}
}
把这两段内容注释掉(此目录下涉及修改的类文件有CASFilter.java、CASValidateFilter.java,其实所有的修改就是把与https有关的内容加以注释)
2、找到edu.yale.its.tp.cas.util.SecureURL
Java代码
if (!u.getProtocol().equals("https")){
// IOException may not be the best exception we could throw here
// since the problem is with the URL argument we were passed, not
// IO. -awp9
log.error("retrieve(" + url + ") on an illegal URL since protocol was not https.");
throw new IOException("only 'https' URLs are valid for this method");
}
把这段内容注释掉
相关文章推荐
- 【SSO-CAS】将CAS https认证的方式改为http
- 【SSO-CAS】将CAS https认证的方式改为http
- 将CAS https认证的方式改为http
- 新域名访问方式从http改为https(为了支持微信小程序https用)
- CAS 使用 HTTPS 单向认证方式 服务端和客户端配置
- YALE CAS HTTPS认证方式问题备忘
- 简述http/https加密和认证方式
- 将CAS 单点登录协议由https改为http
- HTTP认证方式与https简介
- 单点登录cas常见问题(十) - 怎么将认证方式改为JDBC方式?
- 通过http/https的POST方式,发送和接受XML文件内容
- android httpClient 支持HTTPS的2种处理方式
- Sokcet方式请求HTTP/HTTPS的封装类HttpHelper
- 分享Sokcet方式请求HTTP/HTTPS的封装类HttpHelper V2
- Sokcet方式请求HTTP/HTTPS的封装类HttpHelper
- phpmyadmin中三种认证方式config, http or cookie based 有什么不同
- SSO单点登录系列3:cas-server端配置认证方式实践
- android httpClient 支持HTTPS的2种处理方式
- 使用MFC类CInternetSession直接访问HTTP内容,支持断点续传,可轻松改为Windows API方式
- U10新版产品开发:中间件传送方式改为HTTP方式(2011年4月1、2日星期五、六)