4.2以下cas server去掉https验证,tomcat改为https验证

4.2以下cas server去掉https验证


cas默认是采用https模式的,我们没有配置证书,所以要么配置证书,要么取消https的过滤,让http协议也能访问。

我们这里取消https的配置,让http也能访问。

需要修改三个地方的配置(针对4.0.0版本,其他版本的话第一处必改,其他的看看还有没有带有cookie的文件名)

修改一deployerConfigContext.xml增加参数p:requireSecure="false"
我们在tomcat的webapp中找到 cas/WEB-INF/deployerConfigContext.xml

里面有一句

<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient"/>

这里需要增加参数p:requireSecure="false",requireSecure属性意思为是否需要安全验证,即HTTPS,false为不采用。修改后为:

  <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
 p:httpClient-ref="httpClient"  p:requireSecure="false"/>


修改二ticketGrantingTicketCookieGenerator.xml修改p:cookieSecure="false"
 我们在tomcat的webapp中找到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窗口,都不需要验证。

 这里把 cookieSecure修改为false就行了


修改三 warnCookieGenerator.xml修改p:cookieSecure="false"


我们在tomcat的webapp中找到cas/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" />

 参数p:cookieSecure="true",同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。

 这里把 cookieSecure修改为false就行了。

三个地方都修改好后我们就可以启动tomcat了,这时候https的方式已经取消,可以使用http的方式访问了。
 

修改四 客户端(看最下面的声明)

<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>过滤器下的参数url的HTTP改为HTTPS

声明:

工作中用的是cas3.0环境,我的是把项目不支持的http改为支持https,按照以上四处修改,可运行,当然证书还需要安装,tomcat也需要改设置

安全证书配置:

1.生成证书,在tomcat配置的JDK的bin路径下打开cmd窗口输入以下命令:

keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass zhoubang -validity 365 -keystore c:\zhoubang.keystore -storepass zhoubang

2.配置域名

这里的姓氏就是你的IP绑定的域名,有的博客说必须是域名,因为https后面只能跟域名,不能跟IP,cas在回调转入你想访问的客户端应用的时候,会出现No subject alternative names present错误异常信息(仅供参考,未测试)

3.导出证书

keytool -export -alias ssodemo -keystore c:\zhoubang.keystore -file c:\ssodemo.crt -storepass zhoubang

-file后面是crt路径,

-storepass 密码(一致)

5.客户端导入证书:把证书导入到JVM中,如果jdk路径下有cacerts,先删除

keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file c:\ssodemo.crt -alias ssodemo

jdk安装路径下如有空格,需要把整个路径用“”括起来

这里的密码必须输入changeit,不是你之前设置的密码

 

tomcat6.0 server.xml配置,http端口是8443,https端口是443

1.原8080端口配置,改为如下:redirectPort端口改为443

2.打开原8080端口下的注释,修改如下:redirectPort端口改为443,添加证书的位置和密码keystoreFile="D:/keystore",keystorePass="123456",以及开启URIEncoding="UTF-8"  不然项目汉字会乱码(加上也是上一道保险)

3,8009修改如下:redirectPort端口改为443

tomcat web.xml配置:强制开启http转https,如果用http访问,将强制转为https。放在</welcome-file-list>下面,</web-app>上面

<login-config>  
        <auth-method>CLIENT-CERT</auth-method>  
        <realm-name>Client Cert Users-only Area</realm-name>  
    </login-config>  
    <security-constraint>  
        <web-resource-collection >  
            <web-resource-name >SSL</web-resource-name>  
            <url-pattern>/*</url-pattern>  
        </web-resource-collection>  
        <user-data-constraint>  
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
        </user-data-constraint>  
    </security-constraint>

以上便是工作中遇到的问题解答,自己对cas还不太清楚,所以很多地方不知其所以然

https://blog.csdn.net/zhurhyme/column/info/24775

https://jingyan.baidu.com/article/2d5afd6933a07b85a2e28e9d.html

https://www.jianshu.com/p/67d10532c5f8

 

坑爹了,现在要改为域名

在cas客户端的web.xml下的过滤器edu.yale.its.tp.cas.client.filter.CASFilter,初始值改为你的域名,自己可以在hosts中模拟域名测试。强调一下,记得把证书放在jdk的证书库中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值